/* tslint:disable */
/* eslint-disable */
/**
 * Indexea OpenAPI
 * 这是 Indexea 搜索服务平台的 OpenAPI，用于描述平台的所有接口信息，你可以通过这个页面来了解和在线验证平台的所有接口信息。  ### Errors  本 API 使用标准的 HTTP 状态码来指示操作成功或者失败，如果失败将会在 body 中以 JSON 格式提供详细的错误信息，如下所示：  ``` {   \"error\": 404,   \"message\": \"page not found\" } ``` 
 *
 * The version of the OpenAPI document: 1.0.0
 * Contact: indexea.com@gmail.com
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */


import * as runtime from '../runtime';
import type {
  AnalyzeObject,
  AnalyzeToken,
  IndexFieldBean,
  IntelligentMapping,
  KeywordBindingBean,
  QueryBean,
  QueryForm,
  QueryVariableBean,
} from '../models';
import {
    AnalyzeObjectFromJSON,
    AnalyzeObjectToJSON,
    AnalyzeTokenFromJSON,
    AnalyzeTokenToJSON,
    IndexFieldBeanFromJSON,
    IndexFieldBeanToJSON,
    IntelligentMappingFromJSON,
    IntelligentMappingToJSON,
    KeywordBindingBeanFromJSON,
    KeywordBindingBeanToJSON,
    QueryBeanFromJSON,
    QueryBeanToJSON,
    QueryFormFromJSON,
    QueryFormToJSON,
    QueryVariableBeanFromJSON,
    QueryVariableBeanToJSON,
} from '../models';

export interface QueryAnalyzeRequest {
    app: string;
    analyzeObject: AnalyzeObject;
    index?: number;
}

export interface QueryBulkUpdateSettingsRequest {
    app: string;
    query: number;
    body: object;
}

export interface QueryCopyRequest {
    app: string;
    query: number;
}

export interface QueryCopyToQueryRequest {
    app: string;
    query: number;
    to: number;
}

export interface QueryCreateRequest {
    app: string;
    queryForm: QueryForm;
}

export interface QueryCreateKeywordBindingsRequest {
    app: string;
    query: number;
    keywordBindingBean: KeywordBindingBean;
}

export interface QueryCreateVariableRequest {
    app: string;
    queryVariableBean: QueryVariableBean;
}

export interface QueryDeleteRequest {
    app: string;
    query: number;
}

export interface QueryDeleteKeywordBindingsRequest {
    app: string;
    query: number;
    id: number;
}

export interface QueryDeleteNodePositionsRequest {
    app: string;
    query: number;
}

export interface QueryDeleteVariableRequest {
    app: string;
    id: number;
}

export interface QueryFieldsRequest {
    app: string;
    query: number;
}

export interface QueryGetRequest {
    app: string;
    query: number;
}

export interface QueryGetNodePositionsRequest {
    app: string;
    query: number;
}

export interface QueryGetRecordRequest {
    app: string;
    query: number;
    id: string;
}

export interface QueryKeywordBindingsRequest {
    app: string;
    query: number;
}

export interface QueryListRequest {
    app: string;
    index?: number;
}

export interface QueryProfileRequest {
    app: string;
    query: number;
    q?: string;
}

export interface QueryRecordsOfKeywordBindingRequest {
    app: string;
    id: number;
}

export interface QuerySaveIntelligentMappingsRequest {
    app: string;
    query: number;
    fields?: Array<string>;
}

export interface QuerySaveNodePositionsRequest {
    app: string;
    query: number;
    body: object;
}

export interface QuerySearchRequest {
    app: string;
    query: number;
    q?: string;
    from?: number;
    size?: number;
    params?: { [key: string]: string; };
}

export interface QuerySourceRequest {
    app: string;
    query: number;
    q?: string;
}

export interface QuerySuggestRequest {
    app: string;
    query: number;
    q: string;
}

export interface QueryTestIntelligentMappingsRequest {
    app: string;
    query: number;
    q: string;
    fields?: Array<string>;
}

export interface QueryUpdateRequest {
    app: string;
    query: number;
    queryForm: QueryForm;
}

export interface QueryUpdateKeywordBindingsRequest {
    app: string;
    query: number;
    keywordBindingBean: KeywordBindingBean;
}

export interface QueryUpdateSettingsRequest {
    app: string;
    query: number;
    name: string;
    value: string;
    type: QueryUpdateSettingsTypeEnum;
}

export interface QueryUpdateVariableRequest {
    app: string;
    id: number;
    queryVariableBean: QueryVariableBean;
}

export interface QueryValidateRequest {
    app: string;
    query: number;
}

export interface QueryValidateAggregationRequest {
    app: string;
    query: number;
    body: object;
}

export interface QueryValidateQueryRequest {
    app: string;
    query: number;
    body: object;
}

export interface QueryValidateScriptFieldRequest {
    app: string;
    body: object;
    query?: number;
    index?: number;
}

export interface QueryValidateScriptScoreRequest {
    app: string;
    query: number;
    body: object;
}

export interface QueryValidateSuggestionRequest {
    app: string;
    query: number;
    body: object;
}

export interface QueryVariablesRequest {
    app: string;
}

/**
 * 
 */
export class QueriesApi extends runtime.BaseAPI {

    /**
     * 分词测试
     */
    async queryAnalyzeRaw(requestParameters: QueryAnalyzeRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Array<AnalyzeToken>>> {
        if (requestParameters.app === null || requestParameters.app === undefined) {
            throw new runtime.RequiredError('app','Required parameter requestParameters.app was null or undefined when calling queryAnalyze.');
        }

        if (requestParameters.analyzeObject === null || requestParameters.analyzeObject === undefined) {
            throw new runtime.RequiredError('analyzeObject','Required parameter requestParameters.analyzeObject was null or undefined when calling queryAnalyze.');
        }

        const queryParameters: any = {};

        if (requestParameters.index !== undefined) {
            queryParameters['index'] = requestParameters.index;
        }

        const headerParameters: runtime.HTTPHeaders = {};

        headerParameters['Content-Type'] = 'application/json';

        if (this.configuration && this.configuration.accessToken) {
            const token = this.configuration.accessToken;
            const tokenString = await token("TokenAuth", []);

            if (tokenString) {
                headerParameters["Authorization"] = `Bearer ${tokenString}`;
            }
        }
        const response = await this.request({
            path: `/queries/{app}/analyze`.replace(`{${"app"}}`, encodeURIComponent(String(requestParameters.app))),
            method: 'POST',
            headers: headerParameters,
            query: queryParameters,
            body: AnalyzeObjectToJSON(requestParameters.analyzeObject),
        }, initOverrides);

        return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(AnalyzeTokenFromJSON));
    }

    /**
     * 分词测试
     */
    async queryAnalyze(requestParameters: QueryAnalyzeRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Array<AnalyzeToken>> {
        const response = await this.queryAnalyzeRaw(requestParameters, initOverrides);
        return await response.value();
    }

    /**
     * 批量修改查询的设置项
     */
    async queryBulkUpdateSettingsRaw(requestParameters: QueryBulkUpdateSettingsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<boolean>> {
        if (requestParameters.app === null || requestParameters.app === undefined) {
            throw new runtime.RequiredError('app','Required parameter requestParameters.app was null or undefined when calling queryBulkUpdateSettings.');
        }

        if (requestParameters.query === null || requestParameters.query === undefined) {
            throw new runtime.RequiredError('query','Required parameter requestParameters.query was null or undefined when calling queryBulkUpdateSettings.');
        }

        if (requestParameters.body === null || requestParameters.body === undefined) {
            throw new runtime.RequiredError('body','Required parameter requestParameters.body was null or undefined when calling queryBulkUpdateSettings.');
        }

        const queryParameters: any = {};

        if (requestParameters.query !== undefined) {
            queryParameters['query'] = requestParameters.query;
        }

        const headerParameters: runtime.HTTPHeaders = {};

        headerParameters['Content-Type'] = 'application/json';

        if (this.configuration && this.configuration.accessToken) {
            const token = this.configuration.accessToken;
            const tokenString = await token("TokenAuth", []);

            if (tokenString) {
                headerParameters["Authorization"] = `Bearer ${tokenString}`;
            }
        }
        const response = await this.request({
            path: `/queries/{app}/settings`.replace(`{${"app"}}`, encodeURIComponent(String(requestParameters.app))),
            method: 'PUT',
            headers: headerParameters,
            query: queryParameters,
            body: requestParameters.body as any,
        }, initOverrides);

        return new runtime.TextApiResponse(response) as any;
    }

    /**
     * 批量修改查询的设置项
     */
    async queryBulkUpdateSettings(requestParameters: QueryBulkUpdateSettingsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<boolean> {
        const response = await this.queryBulkUpdateSettingsRaw(requestParameters, initOverrides);
        return await response.value();
    }

    /**
     * 复制指定查询并创建新查询
     */
    async queryCopyRaw(requestParameters: QueryCopyRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<QueryBean>> {
        if (requestParameters.app === null || requestParameters.app === undefined) {
            throw new runtime.RequiredError('app','Required parameter requestParameters.app was null or undefined when calling queryCopy.');
        }

        if (requestParameters.query === null || requestParameters.query === undefined) {
            throw new runtime.RequiredError('query','Required parameter requestParameters.query was null or undefined when calling queryCopy.');
        }

        const queryParameters: any = {};

        if (requestParameters.query !== undefined) {
            queryParameters['query'] = requestParameters.query;
        }

        const headerParameters: runtime.HTTPHeaders = {};

        if (this.configuration && this.configuration.accessToken) {
            const token = this.configuration.accessToken;
            const tokenString = await token("TokenAuth", []);

            if (tokenString) {
                headerParameters["Authorization"] = `Bearer ${tokenString}`;
            }
        }
        const response = await this.request({
            path: `/queries/{app}/copy`.replace(`{${"app"}}`, encodeURIComponent(String(requestParameters.app))),
            method: 'POST',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);

        return new runtime.JSONApiResponse(response, (jsonValue) => QueryBeanFromJSON(jsonValue));
    }

    /**
     * 复制指定查询并创建新查询
     */
    async queryCopy(requestParameters: QueryCopyRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<QueryBean> {
        const response = await this.queryCopyRaw(requestParameters, initOverrides);
        return await response.value();
    }

    /**
     * 复制查询到已有查询
     */
    async queryCopyToQueryRaw(requestParameters: QueryCopyToQueryRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<boolean>> {
        if (requestParameters.app === null || requestParameters.app === undefined) {
            throw new runtime.RequiredError('app','Required parameter requestParameters.app was null or undefined when calling queryCopyToQuery.');
        }

        if (requestParameters.query === null || requestParameters.query === undefined) {
            throw new runtime.RequiredError('query','Required parameter requestParameters.query was null or undefined when calling queryCopyToQuery.');
        }

        if (requestParameters.to === null || requestParameters.to === undefined) {
            throw new runtime.RequiredError('to','Required parameter requestParameters.to was null or undefined when calling queryCopyToQuery.');
        }

        const queryParameters: any = {};

        if (requestParameters.query !== undefined) {
            queryParameters['query'] = requestParameters.query;
        }

        if (requestParameters.to !== undefined) {
            queryParameters['to'] = requestParameters.to;
        }

        const headerParameters: runtime.HTTPHeaders = {};

        if (this.configuration && this.configuration.accessToken) {
            const token = this.configuration.accessToken;
            const tokenString = await token("TokenAuth", []);

            if (tokenString) {
                headerParameters["Authorization"] = `Bearer ${tokenString}`;
            }
        }
        const response = await this.request({
            path: `/queries/{app}/copy`.replace(`{${"app"}}`, encodeURIComponent(String(requestParameters.app))),
            method: 'PUT',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);

        return new runtime.TextApiResponse(response) as any;
    }

    /**
     * 复制查询到已有查询
     */
    async queryCopyToQuery(requestParameters: QueryCopyToQueryRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<boolean> {
        const response = await this.queryCopyToQueryRaw(requestParameters, initOverrides);
        return await response.value();
    }

    /**
     * 创建搜索
     */
    async queryCreateRaw(requestParameters: QueryCreateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<QueryBean>> {
        if (requestParameters.app === null || requestParameters.app === undefined) {
            throw new runtime.RequiredError('app','Required parameter requestParameters.app was null or undefined when calling queryCreate.');
        }

        if (requestParameters.queryForm === null || requestParameters.queryForm === undefined) {
            throw new runtime.RequiredError('queryForm','Required parameter requestParameters.queryForm was null or undefined when calling queryCreate.');
        }

        const queryParameters: any = {};

        const headerParameters: runtime.HTTPHeaders = {};

        headerParameters['Content-Type'] = 'application/json';

        if (this.configuration && this.configuration.accessToken) {
            const token = this.configuration.accessToken;
            const tokenString = await token("TokenAuth", []);

            if (tokenString) {
                headerParameters["Authorization"] = `Bearer ${tokenString}`;
            }
        }
        const response = await this.request({
            path: `/queries/{app}`.replace(`{${"app"}}`, encodeURIComponent(String(requestParameters.app))),
            method: 'POST',
            headers: headerParameters,
            query: queryParameters,
            body: QueryFormToJSON(requestParameters.queryForm),
        }, initOverrides);

        return new runtime.JSONApiResponse(response, (jsonValue) => QueryBeanFromJSON(jsonValue));
    }

    /**
     * 创建搜索
     */
    async queryCreate(requestParameters: QueryCreateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<QueryBean> {
        const response = await this.queryCreateRaw(requestParameters, initOverrides);
        return await response.value();
    }

    /**
     * 创建新的关键词文档绑定
     */
    async queryCreateKeywordBindingsRaw(requestParameters: QueryCreateKeywordBindingsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<KeywordBindingBean>> {
        if (requestParameters.app === null || requestParameters.app === undefined) {
            throw new runtime.RequiredError('app','Required parameter requestParameters.app was null or undefined when calling queryCreateKeywordBindings.');
        }

        if (requestParameters.query === null || requestParameters.query === undefined) {
            throw new runtime.RequiredError('query','Required parameter requestParameters.query was null or undefined when calling queryCreateKeywordBindings.');
        }

        if (requestParameters.keywordBindingBean === null || requestParameters.keywordBindingBean === undefined) {
            throw new runtime.RequiredError('keywordBindingBean','Required parameter requestParameters.keywordBindingBean was null or undefined when calling queryCreateKeywordBindings.');
        }

        const queryParameters: any = {};

        if (requestParameters.query !== undefined) {
            queryParameters['query'] = requestParameters.query;
        }

        const headerParameters: runtime.HTTPHeaders = {};

        headerParameters['Content-Type'] = 'application/json';

        if (this.configuration && this.configuration.accessToken) {
            const token = this.configuration.accessToken;
            const tokenString = await token("TokenAuth", []);

            if (tokenString) {
                headerParameters["Authorization"] = `Bearer ${tokenString}`;
            }
        }
        const response = await this.request({
            path: `/queries/{app}/keyword-bindings`.replace(`{${"app"}}`, encodeURIComponent(String(requestParameters.app))),
            method: 'POST',
            headers: headerParameters,
            query: queryParameters,
            body: KeywordBindingBeanToJSON(requestParameters.keywordBindingBean),
        }, initOverrides);

        return new runtime.JSONApiResponse(response, (jsonValue) => KeywordBindingBeanFromJSON(jsonValue));
    }

    /**
     * 创建新的关键词文档绑定
     */
    async queryCreateKeywordBindings(requestParameters: QueryCreateKeywordBindingsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<KeywordBindingBean> {
        const response = await this.queryCreateKeywordBindingsRaw(requestParameters, initOverrides);
        return await response.value();
    }

    /**
     * 
     * 创建新的预定义查询变量
     */
    async queryCreateVariableRaw(requestParameters: QueryCreateVariableRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<QueryVariableBean>> {
        if (requestParameters.app === null || requestParameters.app === undefined) {
            throw new runtime.RequiredError('app','Required parameter requestParameters.app was null or undefined when calling queryCreateVariable.');
        }

        if (requestParameters.queryVariableBean === null || requestParameters.queryVariableBean === undefined) {
            throw new runtime.RequiredError('queryVariableBean','Required parameter requestParameters.queryVariableBean was null or undefined when calling queryCreateVariable.');
        }

        const queryParameters: any = {};

        const headerParameters: runtime.HTTPHeaders = {};

        headerParameters['Content-Type'] = 'application/json';

        if (this.configuration && this.configuration.accessToken) {
            const token = this.configuration.accessToken;
            const tokenString = await token("TokenAuth", []);

            if (tokenString) {
                headerParameters["Authorization"] = `Bearer ${tokenString}`;
            }
        }
        const response = await this.request({
            path: `/queries/{app}/variables`.replace(`{${"app"}}`, encodeURIComponent(String(requestParameters.app))),
            method: 'POST',
            headers: headerParameters,
            query: queryParameters,
            body: QueryVariableBeanToJSON(requestParameters.queryVariableBean),
        }, initOverrides);

        return new runtime.JSONApiResponse(response, (jsonValue) => QueryVariableBeanFromJSON(jsonValue));
    }

    /**
     * 
     * 创建新的预定义查询变量
     */
    async queryCreateVariable(requestParameters: QueryCreateVariableRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<QueryVariableBean> {
        const response = await this.queryCreateVariableRaw(requestParameters, initOverrides);
        return await response.value();
    }

    /**
     * 删除搜索
     */
    async queryDeleteRaw(requestParameters: QueryDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<boolean>> {
        if (requestParameters.app === null || requestParameters.app === undefined) {
            throw new runtime.RequiredError('app','Required parameter requestParameters.app was null or undefined when calling queryDelete.');
        }

        if (requestParameters.query === null || requestParameters.query === undefined) {
            throw new runtime.RequiredError('query','Required parameter requestParameters.query was null or undefined when calling queryDelete.');
        }

        const queryParameters: any = {};

        if (requestParameters.query !== undefined) {
            queryParameters['query'] = requestParameters.query;
        }

        const headerParameters: runtime.HTTPHeaders = {};

        if (this.configuration && this.configuration.accessToken) {
            const token = this.configuration.accessToken;
            const tokenString = await token("TokenAuth", []);

            if (tokenString) {
                headerParameters["Authorization"] = `Bearer ${tokenString}`;
            }
        }
        const response = await this.request({
            path: `/queries/{app}`.replace(`{${"app"}}`, encodeURIComponent(String(requestParameters.app))),
            method: 'DELETE',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);

        return new runtime.TextApiResponse(response) as any;
    }

    /**
     * 删除搜索
     */
    async queryDelete(requestParameters: QueryDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<boolean> {
        const response = await this.queryDeleteRaw(requestParameters, initOverrides);
        return await response.value();
    }

    /**
     * 删除关键词文档绑定
     */
    async queryDeleteKeywordBindingsRaw(requestParameters: QueryDeleteKeywordBindingsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<boolean>> {
        if (requestParameters.app === null || requestParameters.app === undefined) {
            throw new runtime.RequiredError('app','Required parameter requestParameters.app was null or undefined when calling queryDeleteKeywordBindings.');
        }

        if (requestParameters.query === null || requestParameters.query === undefined) {
            throw new runtime.RequiredError('query','Required parameter requestParameters.query was null or undefined when calling queryDeleteKeywordBindings.');
        }

        if (requestParameters.id === null || requestParameters.id === undefined) {
            throw new runtime.RequiredError('id','Required parameter requestParameters.id was null or undefined when calling queryDeleteKeywordBindings.');
        }

        const queryParameters: any = {};

        if (requestParameters.query !== undefined) {
            queryParameters['query'] = requestParameters.query;
        }

        if (requestParameters.id !== undefined) {
            queryParameters['id'] = requestParameters.id;
        }

        const headerParameters: runtime.HTTPHeaders = {};

        if (this.configuration && this.configuration.accessToken) {
            const token = this.configuration.accessToken;
            const tokenString = await token("TokenAuth", []);

            if (tokenString) {
                headerParameters["Authorization"] = `Bearer ${tokenString}`;
            }
        }
        const response = await this.request({
            path: `/queries/{app}/keyword-bindings`.replace(`{${"app"}}`, encodeURIComponent(String(requestParameters.app))),
            method: 'DELETE',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);

        return new runtime.TextApiResponse(response) as any;
    }

    /**
     * 删除关键词文档绑定
     */
    async queryDeleteKeywordBindings(requestParameters: QueryDeleteKeywordBindingsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<boolean> {
        const response = await this.queryDeleteKeywordBindingsRaw(requestParameters, initOverrides);
        return await response.value();
    }

    /**
     * 清除查询条件的节点位置信息
     */
    async queryDeleteNodePositionsRaw(requestParameters: QueryDeleteNodePositionsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<boolean>> {
        if (requestParameters.app === null || requestParameters.app === undefined) {
            throw new runtime.RequiredError('app','Required parameter requestParameters.app was null or undefined when calling queryDeleteNodePositions.');
        }

        if (requestParameters.query === null || requestParameters.query === undefined) {
            throw new runtime.RequiredError('query','Required parameter requestParameters.query was null or undefined when calling queryDeleteNodePositions.');
        }

        const queryParameters: any = {};

        if (requestParameters.query !== undefined) {
            queryParameters['query'] = requestParameters.query;
        }

        const headerParameters: runtime.HTTPHeaders = {};

        if (this.configuration && this.configuration.accessToken) {
            const token = this.configuration.accessToken;
            const tokenString = await token("TokenAuth", []);

            if (tokenString) {
                headerParameters["Authorization"] = `Bearer ${tokenString}`;
            }
        }
        const response = await this.request({
            path: `/queries/{app}/node-positions`.replace(`{${"app"}}`, encodeURIComponent(String(requestParameters.app))),
            method: 'DELETE',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);

        return new runtime.TextApiResponse(response) as any;
    }

    /**
     * 清除查询条件的节点位置信息
     */
    async queryDeleteNodePositions(requestParameters: QueryDeleteNodePositionsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<boolean> {
        const response = await this.queryDeleteNodePositionsRaw(requestParameters, initOverrides);
        return await response.value();
    }

    /**
     * 
     * 删除预定义查询变量
     */
    async queryDeleteVariableRaw(requestParameters: QueryDeleteVariableRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<boolean>> {
        if (requestParameters.app === null || requestParameters.app === undefined) {
            throw new runtime.RequiredError('app','Required parameter requestParameters.app was null or undefined when calling queryDeleteVariable.');
        }

        if (requestParameters.id === null || requestParameters.id === undefined) {
            throw new runtime.RequiredError('id','Required parameter requestParameters.id was null or undefined when calling queryDeleteVariable.');
        }

        const queryParameters: any = {};

        if (requestParameters.id !== undefined) {
            queryParameters['id'] = requestParameters.id;
        }

        const headerParameters: runtime.HTTPHeaders = {};

        if (this.configuration && this.configuration.accessToken) {
            const token = this.configuration.accessToken;
            const tokenString = await token("TokenAuth", []);

            if (tokenString) {
                headerParameters["Authorization"] = `Bearer ${tokenString}`;
            }
        }
        const response = await this.request({
            path: `/queries/{app}/variables`.replace(`{${"app"}}`, encodeURIComponent(String(requestParameters.app))),
            method: 'DELETE',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);

        return new runtime.TextApiResponse(response) as any;
    }

    /**
     * 
     * 删除预定义查询变量
     */
    async queryDeleteVariable(requestParameters: QueryDeleteVariableRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<boolean> {
        const response = await this.queryDeleteVariableRaw(requestParameters, initOverrides);
        return await response.value();
    }

    /**
     * 获取查询关联的所有索引的字段信息
     */
    async queryFieldsRaw(requestParameters: QueryFieldsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Array<IndexFieldBean>>> {
        if (requestParameters.app === null || requestParameters.app === undefined) {
            throw new runtime.RequiredError('app','Required parameter requestParameters.app was null or undefined when calling queryFields.');
        }

        if (requestParameters.query === null || requestParameters.query === undefined) {
            throw new runtime.RequiredError('query','Required parameter requestParameters.query was null or undefined when calling queryFields.');
        }

        const queryParameters: any = {};

        if (requestParameters.query !== undefined) {
            queryParameters['query'] = requestParameters.query;
        }

        const headerParameters: runtime.HTTPHeaders = {};

        if (this.configuration && this.configuration.accessToken) {
            const token = this.configuration.accessToken;
            const tokenString = await token("TokenAuth", []);

            if (tokenString) {
                headerParameters["Authorization"] = `Bearer ${tokenString}`;
            }
        }
        const response = await this.request({
            path: `/queries/{app}/fields`.replace(`{${"app"}}`, encodeURIComponent(String(requestParameters.app))),
            method: 'GET',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);

        return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(IndexFieldBeanFromJSON));
    }

    /**
     * 获取查询关联的所有索引的字段信息
     */
    async queryFields(requestParameters: QueryFieldsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Array<IndexFieldBean>> {
        const response = await this.queryFieldsRaw(requestParameters, initOverrides);
        return await response.value();
    }

    /**
     * 获取查询的详情
     */
    async queryGetRaw(requestParameters: QueryGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<QueryBean>> {
        if (requestParameters.app === null || requestParameters.app === undefined) {
            throw new runtime.RequiredError('app','Required parameter requestParameters.app was null or undefined when calling queryGet.');
        }

        if (requestParameters.query === null || requestParameters.query === undefined) {
            throw new runtime.RequiredError('query','Required parameter requestParameters.query was null or undefined when calling queryGet.');
        }

        const queryParameters: any = {};

        const headerParameters: runtime.HTTPHeaders = {};

        if (this.configuration && this.configuration.accessToken) {
            const token = this.configuration.accessToken;
            const tokenString = await token("TokenAuth", []);

            if (tokenString) {
                headerParameters["Authorization"] = `Bearer ${tokenString}`;
            }
        }
        const response = await this.request({
            path: `/queries/{app}/{query}`.replace(`{${"app"}}`, encodeURIComponent(String(requestParameters.app))).replace(`{${"query"}}`, encodeURIComponent(String(requestParameters.query))),
            method: 'GET',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);

        return new runtime.JSONApiResponse(response, (jsonValue) => QueryBeanFromJSON(jsonValue));
    }

    /**
     * 获取查询的详情
     */
    async queryGet(requestParameters: QueryGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<QueryBean> {
        const response = await this.queryGetRaw(requestParameters, initOverrides);
        return await response.value();
    }

    /**
     * 获取查询条件的节点位置信息
     */
    async queryGetNodePositionsRaw(requestParameters: QueryGetNodePositionsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<object>> {
        if (requestParameters.app === null || requestParameters.app === undefined) {
            throw new runtime.RequiredError('app','Required parameter requestParameters.app was null or undefined when calling queryGetNodePositions.');
        }

        if (requestParameters.query === null || requestParameters.query === undefined) {
            throw new runtime.RequiredError('query','Required parameter requestParameters.query was null or undefined when calling queryGetNodePositions.');
        }

        const queryParameters: any = {};

        if (requestParameters.query !== undefined) {
            queryParameters['query'] = requestParameters.query;
        }

        const headerParameters: runtime.HTTPHeaders = {};

        if (this.configuration && this.configuration.accessToken) {
            const token = this.configuration.accessToken;
            const tokenString = await token("TokenAuth", []);

            if (tokenString) {
                headerParameters["Authorization"] = `Bearer ${tokenString}`;
            }
        }
        const response = await this.request({
            path: `/queries/{app}/node-positions`.replace(`{${"app"}}`, encodeURIComponent(String(requestParameters.app))),
            method: 'GET',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);

        return new runtime.JSONApiResponse<any>(response);
    }

    /**
     * 获取查询条件的节点位置信息
     */
    async queryGetNodePositions(requestParameters: QueryGetNodePositionsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<object> {
        const response = await this.queryGetNodePositionsRaw(requestParameters, initOverrides);
        return await response.value();
    }

    /**
     * 获取记录的详情
     */
    async queryGetRecordRaw(requestParameters: QueryGetRecordRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<object>> {
        if (requestParameters.app === null || requestParameters.app === undefined) {
            throw new runtime.RequiredError('app','Required parameter requestParameters.app was null or undefined when calling queryGetRecord.');
        }

        if (requestParameters.query === null || requestParameters.query === undefined) {
            throw new runtime.RequiredError('query','Required parameter requestParameters.query was null or undefined when calling queryGetRecord.');
        }

        if (requestParameters.id === null || requestParameters.id === undefined) {
            throw new runtime.RequiredError('id','Required parameter requestParameters.id was null or undefined when calling queryGetRecord.');
        }

        const queryParameters: any = {};

        if (requestParameters.query !== undefined) {
            queryParameters['query'] = requestParameters.query;
        }

        if (requestParameters.id !== undefined) {
            queryParameters['_id'] = requestParameters.id;
        }

        const headerParameters: runtime.HTTPHeaders = {};

        if (this.configuration && this.configuration.accessToken) {
            const token = this.configuration.accessToken;
            const tokenString = await token("TokenAuth", []);

            if (tokenString) {
                headerParameters["Authorization"] = `Bearer ${tokenString}`;
            }
        }
        const response = await this.request({
            path: `/queries/{app}/record`.replace(`{${"app"}}`, encodeURIComponent(String(requestParameters.app))),
            method: 'GET',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);

        return new runtime.JSONApiResponse<any>(response);
    }

    /**
     * 获取记录的详情
     */
    async queryGetRecord(requestParameters: QueryGetRecordRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<object> {
        const response = await this.queryGetRecordRaw(requestParameters, initOverrides);
        return await response.value();
    }

    /**
     * 获取查询的关键词文档绑定列表
     */
    async queryKeywordBindingsRaw(requestParameters: QueryKeywordBindingsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Array<KeywordBindingBean>>> {
        if (requestParameters.app === null || requestParameters.app === undefined) {
            throw new runtime.RequiredError('app','Required parameter requestParameters.app was null or undefined when calling queryKeywordBindings.');
        }

        if (requestParameters.query === null || requestParameters.query === undefined) {
            throw new runtime.RequiredError('query','Required parameter requestParameters.query was null or undefined when calling queryKeywordBindings.');
        }

        const queryParameters: any = {};

        if (requestParameters.query !== undefined) {
            queryParameters['query'] = requestParameters.query;
        }

        const headerParameters: runtime.HTTPHeaders = {};

        if (this.configuration && this.configuration.accessToken) {
            const token = this.configuration.accessToken;
            const tokenString = await token("TokenAuth", []);

            if (tokenString) {
                headerParameters["Authorization"] = `Bearer ${tokenString}`;
            }
        }
        const response = await this.request({
            path: `/queries/{app}/keyword-bindings`.replace(`{${"app"}}`, encodeURIComponent(String(requestParameters.app))),
            method: 'GET',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);

        return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(KeywordBindingBeanFromJSON));
    }

    /**
     * 获取查询的关键词文档绑定列表
     */
    async queryKeywordBindings(requestParameters: QueryKeywordBindingsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Array<KeywordBindingBean>> {
        const response = await this.queryKeywordBindingsRaw(requestParameters, initOverrides);
        return await response.value();
    }

    /**
     * 获取应用下所有索引下的查询列表（按索引进行分组）
     */
    async queryListRaw(requestParameters: QueryListRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Array<QueryBean>>> {
        if (requestParameters.app === null || requestParameters.app === undefined) {
            throw new runtime.RequiredError('app','Required parameter requestParameters.app was null or undefined when calling queryList.');
        }

        const queryParameters: any = {};

        if (requestParameters.index !== undefined) {
            queryParameters['index'] = requestParameters.index;
        }

        const headerParameters: runtime.HTTPHeaders = {};

        if (this.configuration && this.configuration.accessToken) {
            const token = this.configuration.accessToken;
            const tokenString = await token("TokenAuth", []);

            if (tokenString) {
                headerParameters["Authorization"] = `Bearer ${tokenString}`;
            }
        }
        const response = await this.request({
            path: `/queries/{app}`.replace(`{${"app"}}`, encodeURIComponent(String(requestParameters.app))),
            method: 'GET',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);

        return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(QueryBeanFromJSON));
    }

    /**
     * 获取应用下所有索引下的查询列表（按索引进行分组）
     */
    async queryList(requestParameters: QueryListRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Array<QueryBean>> {
        const response = await this.queryListRaw(requestParameters, initOverrides);
        return await response.value();
    }

    /**
     * 获取搜索诊断信息
     */
    async queryProfileRaw(requestParameters: QueryProfileRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<object>> {
        if (requestParameters.app === null || requestParameters.app === undefined) {
            throw new runtime.RequiredError('app','Required parameter requestParameters.app was null or undefined when calling queryProfile.');
        }

        if (requestParameters.query === null || requestParameters.query === undefined) {
            throw new runtime.RequiredError('query','Required parameter requestParameters.query was null or undefined when calling queryProfile.');
        }

        const queryParameters: any = {};

        if (requestParameters.query !== undefined) {
            queryParameters['query'] = requestParameters.query;
        }

        if (requestParameters.q !== undefined) {
            queryParameters['q'] = requestParameters.q;
        }

        const headerParameters: runtime.HTTPHeaders = {};

        if (this.configuration && this.configuration.accessToken) {
            const token = this.configuration.accessToken;
            const tokenString = await token("TokenAuth", []);

            if (tokenString) {
                headerParameters["Authorization"] = `Bearer ${tokenString}`;
            }
        }
        const response = await this.request({
            path: `/queries/{app}/profiler`.replace(`{${"app"}}`, encodeURIComponent(String(requestParameters.app))),
            method: 'GET',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);

        return new runtime.JSONApiResponse<any>(response);
    }

    /**
     * 获取搜索诊断信息
     */
    async queryProfile(requestParameters: QueryProfileRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<object> {
        const response = await this.queryProfileRaw(requestParameters, initOverrides);
        return await response.value();
    }

    /**
     * 获取关键词绑定对应的记录列表
     */
    async queryRecordsOfKeywordBindingRaw(requestParameters: QueryRecordsOfKeywordBindingRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Array<object>>> {
        if (requestParameters.app === null || requestParameters.app === undefined) {
            throw new runtime.RequiredError('app','Required parameter requestParameters.app was null or undefined when calling queryRecordsOfKeywordBinding.');
        }

        if (requestParameters.id === null || requestParameters.id === undefined) {
            throw new runtime.RequiredError('id','Required parameter requestParameters.id was null or undefined when calling queryRecordsOfKeywordBinding.');
        }

        const queryParameters: any = {};

        if (requestParameters.id !== undefined) {
            queryParameters['id'] = requestParameters.id;
        }

        const headerParameters: runtime.HTTPHeaders = {};

        if (this.configuration && this.configuration.accessToken) {
            const token = this.configuration.accessToken;
            const tokenString = await token("TokenAuth", []);

            if (tokenString) {
                headerParameters["Authorization"] = `Bearer ${tokenString}`;
            }
        }
        const response = await this.request({
            path: `/queries/{app}/keyword-bindings-records`.replace(`{${"app"}}`, encodeURIComponent(String(requestParameters.app))),
            method: 'GET',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);

        return new runtime.JSONApiResponse<any>(response);
    }

    /**
     * 获取关键词绑定对应的记录列表
     */
    async queryRecordsOfKeywordBinding(requestParameters: QueryRecordsOfKeywordBindingRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Array<object>> {
        const response = await this.queryRecordsOfKeywordBindingRaw(requestParameters, initOverrides);
        return await response.value();
    }

    /**
     * 设置索引智能匹配字段
     */
    async querySaveIntelligentMappingsRaw(requestParameters: QuerySaveIntelligentMappingsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<boolean>> {
        if (requestParameters.app === null || requestParameters.app === undefined) {
            throw new runtime.RequiredError('app','Required parameter requestParameters.app was null or undefined when calling querySaveIntelligentMappings.');
        }

        if (requestParameters.query === null || requestParameters.query === undefined) {
            throw new runtime.RequiredError('query','Required parameter requestParameters.query was null or undefined when calling querySaveIntelligentMappings.');
        }

        const queryParameters: any = {};

        if (requestParameters.query !== undefined) {
            queryParameters['query'] = requestParameters.query;
        }

        if (requestParameters.fields) {
            queryParameters['fields'] = requestParameters.fields;
        }

        const headerParameters: runtime.HTTPHeaders = {};

        if (this.configuration && this.configuration.accessToken) {
            const token = this.configuration.accessToken;
            const tokenString = await token("TokenAuth", []);

            if (tokenString) {
                headerParameters["Authorization"] = `Bearer ${tokenString}`;
            }
        }
        const response = await this.request({
            path: `/queries/{app}/intelligent-mappings`.replace(`{${"app"}}`, encodeURIComponent(String(requestParameters.app))),
            method: 'PUT',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);

        return new runtime.TextApiResponse(response) as any;
    }

    /**
     * 设置索引智能匹配字段
     */
    async querySaveIntelligentMappings(requestParameters: QuerySaveIntelligentMappingsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<boolean> {
        const response = await this.querySaveIntelligentMappingsRaw(requestParameters, initOverrides);
        return await response.value();
    }

    /**
     * 保存查询条件的节点位置信息
     */
    async querySaveNodePositionsRaw(requestParameters: QuerySaveNodePositionsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<object>> {
        if (requestParameters.app === null || requestParameters.app === undefined) {
            throw new runtime.RequiredError('app','Required parameter requestParameters.app was null or undefined when calling querySaveNodePositions.');
        }

        if (requestParameters.query === null || requestParameters.query === undefined) {
            throw new runtime.RequiredError('query','Required parameter requestParameters.query was null or undefined when calling querySaveNodePositions.');
        }

        if (requestParameters.body === null || requestParameters.body === undefined) {
            throw new runtime.RequiredError('body','Required parameter requestParameters.body was null or undefined when calling querySaveNodePositions.');
        }

        const queryParameters: any = {};

        if (requestParameters.query !== undefined) {
            queryParameters['query'] = requestParameters.query;
        }

        const headerParameters: runtime.HTTPHeaders = {};

        headerParameters['Content-Type'] = 'application/json';

        if (this.configuration && this.configuration.accessToken) {
            const token = this.configuration.accessToken;
            const tokenString = await token("TokenAuth", []);

            if (tokenString) {
                headerParameters["Authorization"] = `Bearer ${tokenString}`;
            }
        }
        const response = await this.request({
            path: `/queries/{app}/node-positions`.replace(`{${"app"}}`, encodeURIComponent(String(requestParameters.app))),
            method: 'PUT',
            headers: headerParameters,
            query: queryParameters,
            body: requestParameters.body as any,
        }, initOverrides);

        return new runtime.JSONApiResponse<any>(response);
    }

    /**
     * 保存查询条件的节点位置信息
     */
    async querySaveNodePositions(requestParameters: QuerySaveNodePositionsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<object> {
        const response = await this.querySaveNodePositionsRaw(requestParameters, initOverrides);
        return await response.value();
    }

    /**
     * 该接口主要用于定制查询的测试，必须授权才能访问
     * 搜索测试
     */
    async querySearchRaw(requestParameters: QuerySearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<object>> {
        if (requestParameters.app === null || requestParameters.app === undefined) {
            throw new runtime.RequiredError('app','Required parameter requestParameters.app was null or undefined when calling querySearch.');
        }

        if (requestParameters.query === null || requestParameters.query === undefined) {
            throw new runtime.RequiredError('query','Required parameter requestParameters.query was null or undefined when calling querySearch.');
        }

        const queryParameters: any = {};

        if (requestParameters.query !== undefined) {
            queryParameters['query'] = requestParameters.query;
        }

        if (requestParameters.q !== undefined) {
            queryParameters['q'] = requestParameters.q;
        }

        if (requestParameters.from !== undefined) {
            queryParameters['from'] = requestParameters.from;
        }

        if (requestParameters.size !== undefined) {
            queryParameters['size'] = requestParameters.size;
        }

        if (requestParameters.params !== undefined) {
            queryParameters['params'] = requestParameters.params;
        }

        const headerParameters: runtime.HTTPHeaders = {};

        if (this.configuration && this.configuration.accessToken) {
            const token = this.configuration.accessToken;
            const tokenString = await token("TokenAuth", []);

            if (tokenString) {
                headerParameters["Authorization"] = `Bearer ${tokenString}`;
            }
        }
        const response = await this.request({
            path: `/queries/{app}/search`.replace(`{${"app"}}`, encodeURIComponent(String(requestParameters.app))),
            method: 'GET',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);

        return new runtime.JSONApiResponse<any>(response);
    }

    /**
     * 该接口主要用于定制查询的测试，必须授权才能访问
     * 搜索测试
     */
    async querySearch(requestParameters: QuerySearchRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<object> {
        const response = await this.querySearchRaw(requestParameters, initOverrides);
        return await response.value();
    }

    /**
     * 获取最终查询的源码(JSON)
     */
    async querySourceRaw(requestParameters: QuerySourceRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<object>> {
        if (requestParameters.app === null || requestParameters.app === undefined) {
            throw new runtime.RequiredError('app','Required parameter requestParameters.app was null or undefined when calling querySource.');
        }

        if (requestParameters.query === null || requestParameters.query === undefined) {
            throw new runtime.RequiredError('query','Required parameter requestParameters.query was null or undefined when calling querySource.');
        }

        const queryParameters: any = {};

        if (requestParameters.q !== undefined) {
            queryParameters['q'] = requestParameters.q;
        }

        const headerParameters: runtime.HTTPHeaders = {};

        if (this.configuration && this.configuration.accessToken) {
            const token = this.configuration.accessToken;
            const tokenString = await token("TokenAuth", []);

            if (tokenString) {
                headerParameters["Authorization"] = `Bearer ${tokenString}`;
            }
        }
        const response = await this.request({
            path: `/queries/{app}/{query}`.replace(`{${"app"}}`, encodeURIComponent(String(requestParameters.app))).replace(`{${"query"}}`, encodeURIComponent(String(requestParameters.query))),
            method: 'POST',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);

        return new runtime.JSONApiResponse<any>(response);
    }

    /**
     * 获取最终查询的源码(JSON)
     */
    async querySource(requestParameters: QuerySourceRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<object> {
        const response = await this.querySourceRaw(requestParameters, initOverrides);
        return await response.value();
    }

    /**
     * 获取搜索建议列表
     */
    async querySuggestRaw(requestParameters: QuerySuggestRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Array<object>>> {
        if (requestParameters.app === null || requestParameters.app === undefined) {
            throw new runtime.RequiredError('app','Required parameter requestParameters.app was null or undefined when calling querySuggest.');
        }

        if (requestParameters.query === null || requestParameters.query === undefined) {
            throw new runtime.RequiredError('query','Required parameter requestParameters.query was null or undefined when calling querySuggest.');
        }

        if (requestParameters.q === null || requestParameters.q === undefined) {
            throw new runtime.RequiredError('q','Required parameter requestParameters.q was null or undefined when calling querySuggest.');
        }

        const queryParameters: any = {};

        if (requestParameters.query !== undefined) {
            queryParameters['query'] = requestParameters.query;
        }

        if (requestParameters.q !== undefined) {
            queryParameters['q'] = requestParameters.q;
        }

        const headerParameters: runtime.HTTPHeaders = {};

        if (this.configuration && this.configuration.accessToken) {
            const token = this.configuration.accessToken;
            const tokenString = await token("TokenAuth", []);

            if (tokenString) {
                headerParameters["Authorization"] = `Bearer ${tokenString}`;
            }
        }
        const response = await this.request({
            path: `/queries/{app}/suggest`.replace(`{${"app"}}`, encodeURIComponent(String(requestParameters.app))),
            method: 'GET',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);

        return new runtime.JSONApiResponse<any>(response);
    }

    /**
     * 获取搜索建议列表
     */
    async querySuggest(requestParameters: QuerySuggestRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Array<object>> {
        const response = await this.querySuggestRaw(requestParameters, initOverrides);
        return await response.value();
    }

    /**
     * 测试索引智能匹配字段
     */
    async queryTestIntelligentMappingsRaw(requestParameters: QueryTestIntelligentMappingsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Array<IntelligentMapping>>> {
        if (requestParameters.app === null || requestParameters.app === undefined) {
            throw new runtime.RequiredError('app','Required parameter requestParameters.app was null or undefined when calling queryTestIntelligentMappings.');
        }

        if (requestParameters.query === null || requestParameters.query === undefined) {
            throw new runtime.RequiredError('query','Required parameter requestParameters.query was null or undefined when calling queryTestIntelligentMappings.');
        }

        if (requestParameters.q === null || requestParameters.q === undefined) {
            throw new runtime.RequiredError('q','Required parameter requestParameters.q was null or undefined when calling queryTestIntelligentMappings.');
        }

        const queryParameters: any = {};

        if (requestParameters.query !== undefined) {
            queryParameters['query'] = requestParameters.query;
        }

        if (requestParameters.fields) {
            queryParameters['fields'] = requestParameters.fields;
        }

        if (requestParameters.q !== undefined) {
            queryParameters['q'] = requestParameters.q;
        }

        const headerParameters: runtime.HTTPHeaders = {};

        if (this.configuration && this.configuration.accessToken) {
            const token = this.configuration.accessToken;
            const tokenString = await token("TokenAuth", []);

            if (tokenString) {
                headerParameters["Authorization"] = `Bearer ${tokenString}`;
            }
        }
        const response = await this.request({
            path: `/queries/{app}/intelligent-mappings`.replace(`{${"app"}}`, encodeURIComponent(String(requestParameters.app))),
            method: 'POST',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);

        return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(IntelligentMappingFromJSON));
    }

    /**
     * 测试索引智能匹配字段
     */
    async queryTestIntelligentMappings(requestParameters: QueryTestIntelligentMappingsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Array<IntelligentMapping>> {
        const response = await this.queryTestIntelligentMappingsRaw(requestParameters, initOverrides);
        return await response.value();
    }

    /**
     * 修改查询
     */
    async queryUpdateRaw(requestParameters: QueryUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<QueryBean>> {
        if (requestParameters.app === null || requestParameters.app === undefined) {
            throw new runtime.RequiredError('app','Required parameter requestParameters.app was null or undefined when calling queryUpdate.');
        }

        if (requestParameters.query === null || requestParameters.query === undefined) {
            throw new runtime.RequiredError('query','Required parameter requestParameters.query was null or undefined when calling queryUpdate.');
        }

        if (requestParameters.queryForm === null || requestParameters.queryForm === undefined) {
            throw new runtime.RequiredError('queryForm','Required parameter requestParameters.queryForm was null or undefined when calling queryUpdate.');
        }

        const queryParameters: any = {};

        if (requestParameters.query !== undefined) {
            queryParameters['query'] = requestParameters.query;
        }

        const headerParameters: runtime.HTTPHeaders = {};

        headerParameters['Content-Type'] = 'application/json';

        if (this.configuration && this.configuration.accessToken) {
            const token = this.configuration.accessToken;
            const tokenString = await token("TokenAuth", []);

            if (tokenString) {
                headerParameters["Authorization"] = `Bearer ${tokenString}`;
            }
        }
        const response = await this.request({
            path: `/queries/{app}`.replace(`{${"app"}}`, encodeURIComponent(String(requestParameters.app))),
            method: 'PUT',
            headers: headerParameters,
            query: queryParameters,
            body: QueryFormToJSON(requestParameters.queryForm),
        }, initOverrides);

        return new runtime.JSONApiResponse(response, (jsonValue) => QueryBeanFromJSON(jsonValue));
    }

    /**
     * 修改查询
     */
    async queryUpdate(requestParameters: QueryUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<QueryBean> {
        const response = await this.queryUpdateRaw(requestParameters, initOverrides);
        return await response.value();
    }

    /**
     * 修改关键词文档绑定
     */
    async queryUpdateKeywordBindingsRaw(requestParameters: QueryUpdateKeywordBindingsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<KeywordBindingBean>> {
        if (requestParameters.app === null || requestParameters.app === undefined) {
            throw new runtime.RequiredError('app','Required parameter requestParameters.app was null or undefined when calling queryUpdateKeywordBindings.');
        }

        if (requestParameters.query === null || requestParameters.query === undefined) {
            throw new runtime.RequiredError('query','Required parameter requestParameters.query was null or undefined when calling queryUpdateKeywordBindings.');
        }

        if (requestParameters.keywordBindingBean === null || requestParameters.keywordBindingBean === undefined) {
            throw new runtime.RequiredError('keywordBindingBean','Required parameter requestParameters.keywordBindingBean was null or undefined when calling queryUpdateKeywordBindings.');
        }

        const queryParameters: any = {};

        if (requestParameters.query !== undefined) {
            queryParameters['query'] = requestParameters.query;
        }

        const headerParameters: runtime.HTTPHeaders = {};

        headerParameters['Content-Type'] = 'application/json';

        if (this.configuration && this.configuration.accessToken) {
            const token = this.configuration.accessToken;
            const tokenString = await token("TokenAuth", []);

            if (tokenString) {
                headerParameters["Authorization"] = `Bearer ${tokenString}`;
            }
        }
        const response = await this.request({
            path: `/queries/{app}/keyword-bindings`.replace(`{${"app"}}`, encodeURIComponent(String(requestParameters.app))),
            method: 'PATCH',
            headers: headerParameters,
            query: queryParameters,
            body: KeywordBindingBeanToJSON(requestParameters.keywordBindingBean),
        }, initOverrides);

        return new runtime.JSONApiResponse(response, (jsonValue) => KeywordBindingBeanFromJSON(jsonValue));
    }

    /**
     * 修改关键词文档绑定
     */
    async queryUpdateKeywordBindings(requestParameters: QueryUpdateKeywordBindingsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<KeywordBindingBean> {
        const response = await this.queryUpdateKeywordBindingsRaw(requestParameters, initOverrides);
        return await response.value();
    }

    /**
     * 更改查询的设置项
     */
    async queryUpdateSettingsRaw(requestParameters: QueryUpdateSettingsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<boolean>> {
        if (requestParameters.app === null || requestParameters.app === undefined) {
            throw new runtime.RequiredError('app','Required parameter requestParameters.app was null or undefined when calling queryUpdateSettings.');
        }

        if (requestParameters.query === null || requestParameters.query === undefined) {
            throw new runtime.RequiredError('query','Required parameter requestParameters.query was null or undefined when calling queryUpdateSettings.');
        }

        if (requestParameters.name === null || requestParameters.name === undefined) {
            throw new runtime.RequiredError('name','Required parameter requestParameters.name was null or undefined when calling queryUpdateSettings.');
        }

        if (requestParameters.value === null || requestParameters.value === undefined) {
            throw new runtime.RequiredError('value','Required parameter requestParameters.value was null or undefined when calling queryUpdateSettings.');
        }

        if (requestParameters.type === null || requestParameters.type === undefined) {
            throw new runtime.RequiredError('type','Required parameter requestParameters.type was null or undefined when calling queryUpdateSettings.');
        }

        const queryParameters: any = {};

        if (requestParameters.query !== undefined) {
            queryParameters['query'] = requestParameters.query;
        }

        if (requestParameters.name !== undefined) {
            queryParameters['name'] = requestParameters.name;
        }

        if (requestParameters.value !== undefined) {
            queryParameters['value'] = requestParameters.value;
        }

        if (requestParameters.type !== undefined) {
            queryParameters['type'] = requestParameters.type;
        }

        const headerParameters: runtime.HTTPHeaders = {};

        if (this.configuration && this.configuration.accessToken) {
            const token = this.configuration.accessToken;
            const tokenString = await token("TokenAuth", []);

            if (tokenString) {
                headerParameters["Authorization"] = `Bearer ${tokenString}`;
            }
        }
        const response = await this.request({
            path: `/queries/{app}/settings`.replace(`{${"app"}}`, encodeURIComponent(String(requestParameters.app))),
            method: 'POST',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);

        return new runtime.TextApiResponse(response) as any;
    }

    /**
     * 更改查询的设置项
     */
    async queryUpdateSettings(requestParameters: QueryUpdateSettingsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<boolean> {
        const response = await this.queryUpdateSettingsRaw(requestParameters, initOverrides);
        return await response.value();
    }

    /**
     * 
     * 修改预定义查询变量
     */
    async queryUpdateVariableRaw(requestParameters: QueryUpdateVariableRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<QueryVariableBean>> {
        if (requestParameters.app === null || requestParameters.app === undefined) {
            throw new runtime.RequiredError('app','Required parameter requestParameters.app was null or undefined when calling queryUpdateVariable.');
        }

        if (requestParameters.id === null || requestParameters.id === undefined) {
            throw new runtime.RequiredError('id','Required parameter requestParameters.id was null or undefined when calling queryUpdateVariable.');
        }

        if (requestParameters.queryVariableBean === null || requestParameters.queryVariableBean === undefined) {
            throw new runtime.RequiredError('queryVariableBean','Required parameter requestParameters.queryVariableBean was null or undefined when calling queryUpdateVariable.');
        }

        const queryParameters: any = {};

        if (requestParameters.id !== undefined) {
            queryParameters['id'] = requestParameters.id;
        }

        const headerParameters: runtime.HTTPHeaders = {};

        headerParameters['Content-Type'] = 'application/json';

        if (this.configuration && this.configuration.accessToken) {
            const token = this.configuration.accessToken;
            const tokenString = await token("TokenAuth", []);

            if (tokenString) {
                headerParameters["Authorization"] = `Bearer ${tokenString}`;
            }
        }
        const response = await this.request({
            path: `/queries/{app}/variables`.replace(`{${"app"}}`, encodeURIComponent(String(requestParameters.app))),
            method: 'PATCH',
            headers: headerParameters,
            query: queryParameters,
            body: QueryVariableBeanToJSON(requestParameters.queryVariableBean),
        }, initOverrides);

        return new runtime.JSONApiResponse(response, (jsonValue) => QueryVariableBeanFromJSON(jsonValue));
    }

    /**
     * 
     * 修改预定义查询变量
     */
    async queryUpdateVariable(requestParameters: QueryUpdateVariableRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<QueryVariableBean> {
        const response = await this.queryUpdateVariableRaw(requestParameters, initOverrides);
        return await response.value();
    }

    /**
     * 获取搜索验证结果
     */
    async queryValidateRaw(requestParameters: QueryValidateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<object>> {
        if (requestParameters.app === null || requestParameters.app === undefined) {
            throw new runtime.RequiredError('app','Required parameter requestParameters.app was null or undefined when calling queryValidate.');
        }

        if (requestParameters.query === null || requestParameters.query === undefined) {
            throw new runtime.RequiredError('query','Required parameter requestParameters.query was null or undefined when calling queryValidate.');
        }

        const queryParameters: any = {};

        if (requestParameters.query !== undefined) {
            queryParameters['query'] = requestParameters.query;
        }

        const headerParameters: runtime.HTTPHeaders = {};

        if (this.configuration && this.configuration.accessToken) {
            const token = this.configuration.accessToken;
            const tokenString = await token("TokenAuth", []);

            if (tokenString) {
                headerParameters["Authorization"] = `Bearer ${tokenString}`;
            }
        }
        const response = await this.request({
            path: `/queries/{app}/validate`.replace(`{${"app"}}`, encodeURIComponent(String(requestParameters.app))),
            method: 'GET',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);

        return new runtime.JSONApiResponse<any>(response);
    }

    /**
     * 获取搜索验证结果
     */
    async queryValidate(requestParameters: QueryValidateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<object> {
        const response = await this.queryValidateRaw(requestParameters, initOverrides);
        return await response.value();
    }

    /**
     * 验证聚合定义是否正确
     */
    async queryValidateAggregationRaw(requestParameters: QueryValidateAggregationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<object>> {
        if (requestParameters.app === null || requestParameters.app === undefined) {
            throw new runtime.RequiredError('app','Required parameter requestParameters.app was null or undefined when calling queryValidateAggregation.');
        }

        if (requestParameters.query === null || requestParameters.query === undefined) {
            throw new runtime.RequiredError('query','Required parameter requestParameters.query was null or undefined when calling queryValidateAggregation.');
        }

        if (requestParameters.body === null || requestParameters.body === undefined) {
            throw new runtime.RequiredError('body','Required parameter requestParameters.body was null or undefined when calling queryValidateAggregation.');
        }

        const queryParameters: any = {};

        if (requestParameters.query !== undefined) {
            queryParameters['query'] = requestParameters.query;
        }

        const headerParameters: runtime.HTTPHeaders = {};

        headerParameters['Content-Type'] = 'application/json';

        if (this.configuration && this.configuration.accessToken) {
            const token = this.configuration.accessToken;
            const tokenString = await token("TokenAuth", []);

            if (tokenString) {
                headerParameters["Authorization"] = `Bearer ${tokenString}`;
            }
        }
        const response = await this.request({
            path: `/queries/{app}/validate-aggregation`.replace(`{${"app"}}`, encodeURIComponent(String(requestParameters.app))),
            method: 'POST',
            headers: headerParameters,
            query: queryParameters,
            body: requestParameters.body as any,
        }, initOverrides);

        return new runtime.JSONApiResponse<any>(response);
    }

    /**
     * 验证聚合定义是否正确
     */
    async queryValidateAggregation(requestParameters: QueryValidateAggregationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<object> {
        const response = await this.queryValidateAggregationRaw(requestParameters, initOverrides);
        return await response.value();
    }

    /**
     * 验证聚合定义是否正确
     */
    async queryValidateQueryRaw(requestParameters: QueryValidateQueryRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<object>> {
        if (requestParameters.app === null || requestParameters.app === undefined) {
            throw new runtime.RequiredError('app','Required parameter requestParameters.app was null or undefined when calling queryValidateQuery.');
        }

        if (requestParameters.query === null || requestParameters.query === undefined) {
            throw new runtime.RequiredError('query','Required parameter requestParameters.query was null or undefined when calling queryValidateQuery.');
        }

        if (requestParameters.body === null || requestParameters.body === undefined) {
            throw new runtime.RequiredError('body','Required parameter requestParameters.body was null or undefined when calling queryValidateQuery.');
        }

        const queryParameters: any = {};

        if (requestParameters.query !== undefined) {
            queryParameters['query'] = requestParameters.query;
        }

        const headerParameters: runtime.HTTPHeaders = {};

        headerParameters['Content-Type'] = 'application/json';

        if (this.configuration && this.configuration.accessToken) {
            const token = this.configuration.accessToken;
            const tokenString = await token("TokenAuth", []);

            if (tokenString) {
                headerParameters["Authorization"] = `Bearer ${tokenString}`;
            }
        }
        const response = await this.request({
            path: `/queries/{app}/validate-query`.replace(`{${"app"}}`, encodeURIComponent(String(requestParameters.app))),
            method: 'POST',
            headers: headerParameters,
            query: queryParameters,
            body: requestParameters.body as any,
        }, initOverrides);

        return new runtime.JSONApiResponse<any>(response);
    }

    /**
     * 验证聚合定义是否正确
     */
    async queryValidateQuery(requestParameters: QueryValidateQueryRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<object> {
        const response = await this.queryValidateQueryRaw(requestParameters, initOverrides);
        return await response.value();
    }

    /**
     * 验证脚本字段是否正确
     */
    async queryValidateScriptFieldRaw(requestParameters: QueryValidateScriptFieldRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<object>> {
        if (requestParameters.app === null || requestParameters.app === undefined) {
            throw new runtime.RequiredError('app','Required parameter requestParameters.app was null or undefined when calling queryValidateScriptField.');
        }

        if (requestParameters.body === null || requestParameters.body === undefined) {
            throw new runtime.RequiredError('body','Required parameter requestParameters.body was null or undefined when calling queryValidateScriptField.');
        }

        const queryParameters: any = {};

        if (requestParameters.query !== undefined) {
            queryParameters['query'] = requestParameters.query;
        }

        if (requestParameters.index !== undefined) {
            queryParameters['index'] = requestParameters.index;
        }

        const headerParameters: runtime.HTTPHeaders = {};

        headerParameters['Content-Type'] = 'application/json';

        if (this.configuration && this.configuration.accessToken) {
            const token = this.configuration.accessToken;
            const tokenString = await token("TokenAuth", []);

            if (tokenString) {
                headerParameters["Authorization"] = `Bearer ${tokenString}`;
            }
        }
        const response = await this.request({
            path: `/queries/{app}/validate-script-field`.replace(`{${"app"}}`, encodeURIComponent(String(requestParameters.app))),
            method: 'POST',
            headers: headerParameters,
            query: queryParameters,
            body: requestParameters.body as any,
        }, initOverrides);

        return new runtime.JSONApiResponse<any>(response);
    }

    /**
     * 验证脚本字段是否正确
     */
    async queryValidateScriptField(requestParameters: QueryValidateScriptFieldRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<object> {
        const response = await this.queryValidateScriptFieldRaw(requestParameters, initOverrides);
        return await response.value();
    }

    /**
     * 验证脚本字段是否正确
     */
    async queryValidateScriptScoreRaw(requestParameters: QueryValidateScriptScoreRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<object>> {
        if (requestParameters.app === null || requestParameters.app === undefined) {
            throw new runtime.RequiredError('app','Required parameter requestParameters.app was null or undefined when calling queryValidateScriptScore.');
        }

        if (requestParameters.query === null || requestParameters.query === undefined) {
            throw new runtime.RequiredError('query','Required parameter requestParameters.query was null or undefined when calling queryValidateScriptScore.');
        }

        if (requestParameters.body === null || requestParameters.body === undefined) {
            throw new runtime.RequiredError('body','Required parameter requestParameters.body was null or undefined when calling queryValidateScriptScore.');
        }

        const queryParameters: any = {};

        if (requestParameters.query !== undefined) {
            queryParameters['query'] = requestParameters.query;
        }

        const headerParameters: runtime.HTTPHeaders = {};

        headerParameters['Content-Type'] = 'application/json';

        if (this.configuration && this.configuration.accessToken) {
            const token = this.configuration.accessToken;
            const tokenString = await token("TokenAuth", []);

            if (tokenString) {
                headerParameters["Authorization"] = `Bearer ${tokenString}`;
            }
        }
        const response = await this.request({
            path: `/queries/{app}/validate-script-score`.replace(`{${"app"}}`, encodeURIComponent(String(requestParameters.app))),
            method: 'POST',
            headers: headerParameters,
            query: queryParameters,
            body: requestParameters.body as any,
        }, initOverrides);

        return new runtime.JSONApiResponse<any>(response);
    }

    /**
     * 验证脚本字段是否正确
     */
    async queryValidateScriptScore(requestParameters: QueryValidateScriptScoreRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<object> {
        const response = await this.queryValidateScriptScoreRaw(requestParameters, initOverrides);
        return await response.value();
    }

    /**
     * 验证建议是否正确
     */
    async queryValidateSuggestionRaw(requestParameters: QueryValidateSuggestionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<object>> {
        if (requestParameters.app === null || requestParameters.app === undefined) {
            throw new runtime.RequiredError('app','Required parameter requestParameters.app was null or undefined when calling queryValidateSuggestion.');
        }

        if (requestParameters.query === null || requestParameters.query === undefined) {
            throw new runtime.RequiredError('query','Required parameter requestParameters.query was null or undefined when calling queryValidateSuggestion.');
        }

        if (requestParameters.body === null || requestParameters.body === undefined) {
            throw new runtime.RequiredError('body','Required parameter requestParameters.body was null or undefined when calling queryValidateSuggestion.');
        }

        const queryParameters: any = {};

        if (requestParameters.query !== undefined) {
            queryParameters['query'] = requestParameters.query;
        }

        const headerParameters: runtime.HTTPHeaders = {};

        headerParameters['Content-Type'] = 'application/json';

        if (this.configuration && this.configuration.accessToken) {
            const token = this.configuration.accessToken;
            const tokenString = await token("TokenAuth", []);

            if (tokenString) {
                headerParameters["Authorization"] = `Bearer ${tokenString}`;
            }
        }
        const response = await this.request({
            path: `/queries/{app}/validate-suggest`.replace(`{${"app"}}`, encodeURIComponent(String(requestParameters.app))),
            method: 'POST',
            headers: headerParameters,
            query: queryParameters,
            body: requestParameters.body as any,
        }, initOverrides);

        return new runtime.JSONApiResponse<any>(response);
    }

    /**
     * 验证建议是否正确
     */
    async queryValidateSuggestion(requestParameters: QueryValidateSuggestionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<object> {
        const response = await this.queryValidateSuggestionRaw(requestParameters, initOverrides);
        return await response.value();
    }

    /**
     * 
     * 获取应用的预定义查询变量列表
     */
    async queryVariablesRaw(requestParameters: QueryVariablesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Array<QueryVariableBean>>> {
        if (requestParameters.app === null || requestParameters.app === undefined) {
            throw new runtime.RequiredError('app','Required parameter requestParameters.app was null or undefined when calling queryVariables.');
        }

        const queryParameters: any = {};

        const headerParameters: runtime.HTTPHeaders = {};

        if (this.configuration && this.configuration.accessToken) {
            const token = this.configuration.accessToken;
            const tokenString = await token("TokenAuth", []);

            if (tokenString) {
                headerParameters["Authorization"] = `Bearer ${tokenString}`;
            }
        }
        const response = await this.request({
            path: `/queries/{app}/variables`.replace(`{${"app"}}`, encodeURIComponent(String(requestParameters.app))),
            method: 'GET',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);

        return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(QueryVariableBeanFromJSON));
    }

    /**
     * 
     * 获取应用的预定义查询变量列表
     */
    async queryVariables(requestParameters: QueryVariablesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Array<QueryVariableBean>> {
        const response = await this.queryVariablesRaw(requestParameters, initOverrides);
        return await response.value();
    }

}

/**
 * @export
 */
export const QueryUpdateSettingsTypeEnum = {
    Number: 'number',
    Bool: 'bool',
    String: 'string'
} as const;
export type QueryUpdateSettingsTypeEnum = typeof QueryUpdateSettingsTypeEnum[keyof typeof QueryUpdateSettingsTypeEnum];
