/* 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';

export interface OptionsGetRequest {
    name: string;
    keys: string;
}

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

    /**
     * 获取 OpenAPI 接口定义(JSON)
     * 接口定义(JSON)
     */
    async jsonRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<object>> {
        const queryParameters: any = {};

        const headerParameters: runtime.HTTPHeaders = {};

        const response = await this.request({
            path: `/json`,
            method: 'GET',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);

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

    /**
     * 获取 OpenAPI 接口定义(JSON)
     * 接口定义(JSON)
     */
    async json(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<object> {
        const response = await this.jsonRaw(initOverrides);
        return await response.value();
    }

    /**
     * 系统全局配置接口
     */
    async optionsGetRaw(requestParameters: OptionsGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<object>> {
        if (requestParameters.name === null || requestParameters.name === undefined) {
            throw new runtime.RequiredError('name','Required parameter requestParameters.name was null or undefined when calling optionsGet.');
        }

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

        const queryParameters: any = {};

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

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

        const headerParameters: runtime.HTTPHeaders = {};

        const response = await this.request({
            path: `/options`,
            method: 'GET',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);

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

    /**
     * 系统全局配置接口
     */
    async optionsGet(requestParameters: OptionsGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<object> {
        const response = await this.optionsGetRaw(requestParameters, initOverrides);
        return await response.value();
    }

    /**
     * 数据库服务状态测试
     */
    async statusDatabaseRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<string>> {
        const queryParameters: any = {};

        const headerParameters: runtime.HTTPHeaders = {};

        const response = await this.request({
            path: `/status/database`,
            method: 'GET',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);

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

    /**
     * 数据库服务状态测试
     */
    async statusDatabase(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<string> {
        const response = await this.statusDatabaseRaw(initOverrides);
        return await response.value();
    }

    /**
     * 搜索引擎状态测试
     */
    async statusEngineRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<string>> {
        const queryParameters: any = {};

        const headerParameters: runtime.HTTPHeaders = {};

        const response = await this.request({
            path: `/status/engine`,
            method: 'GET',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);

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

    /**
     * 搜索引擎状态测试
     */
    async statusEngine(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<string> {
        const response = await this.statusEngineRaw(initOverrides);
        return await response.value();
    }

    /**
     * 接口欢迎信息
     */
    async welcomeRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<string>> {
        const queryParameters: any = {};

        const headerParameters: runtime.HTTPHeaders = {};

        const response = await this.request({
            path: `/`,
            method: 'GET',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);

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

    /**
     * 接口欢迎信息
     */
    async welcome(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<string> {
        const response = await this.welcomeRaw(initOverrides);
        return await response.value();
    }

    /**
     * 获取 OpenAPI 接口定义(YAML)
     * 接口定义(YAML)
     */
    async yamlRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<string>> {
        const queryParameters: any = {};

        const headerParameters: runtime.HTTPHeaders = {};

        const response = await this.request({
            path: `/yaml`,
            method: 'GET',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);

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

    /**
     * 获取 OpenAPI 接口定义(YAML)
     * 接口定义(YAML)
     */
    async yaml(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<string> {
        const response = await this.yamlRaw(initOverrides);
        return await response.value();
    }

}
