/**
 * Admin API
 * The Admin API is used to manage the ApeCloud platform.
 *
 * The version of the OpenAPI document: 1.0.0
 * Contact: support@apecloud.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 type { Configuration } from '../configuration';
import type { AxiosPromise, AxiosInstance, RawAxiosRequestConfig } from 'axios';
import { type RequestArgs, BaseAPI } from '../base';
import type { Database } from '../models';
import type { DatabaseList } from '../models';
/**
 * DatabaseApi - axios parameter creator
 * @export
 */
export declare const DatabaseApiAxiosParamCreator: (configuration?: Configuration) => {
    /**
     * create a database in cluster
     * @summary Create cluster database
     * @param {string} engineName name of the engine
     * @param {string} orgName name of the Org
     * @param {string} clusterName name of the Cluster
     * @param {Database} body
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    createDatabase: (engineName: string, orgName: string, clusterName: string, body: Database, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * delete a database in cluster
     * @summary Delete cluster database
     * @param {string} engineName name of the engine
     * @param {string} orgName name of the Org
     * @param {string} clusterName name of the Cluster
     * @param {string} databaseName name of database
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    deleteDatabase: (engineName: string, orgName: string, clusterName: string, databaseName: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * get a database info in cluster
     * @param {string} engineName name of the engine
     * @param {string} orgName name of the Org
     * @param {string} clusterName name of the Cluster
     * @param {string} databaseName name of database
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getDatabase: (engineName: string, orgName: string, clusterName: string, databaseName: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * list databases for rdbms engine cluster
     * @summary List cluster databases
     * @param {string} engineName name of the engine
     * @param {string} orgName name of the Org
     * @param {string} clusterName name of the Cluster
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    listDatabases: (engineName: string, orgName: string, clusterName: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * update a database config in cluster
     * @summary update database config
     * @param {string} engineName name of the engine
     * @param {string} orgName name of the Org
     * @param {string} clusterName name of the Cluster
     * @param {string} databaseName name of database
     * @param {{ [key: string]: string; }} [requestBody]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    updateDatabaseConfig: (engineName: string, orgName: string, clusterName: string, databaseName: string, requestBody?: {
        [key: string]: string;
    }, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
};
/**
 * DatabaseApi - functional programming interface
 * @export
 */
export declare const DatabaseApiFp: (configuration?: Configuration) => {
    /**
     * create a database in cluster
     * @summary Create cluster database
     * @param {string} engineName name of the engine
     * @param {string} orgName name of the Org
     * @param {string} clusterName name of the Cluster
     * @param {Database} body
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    createDatabase(engineName: string, orgName: string, clusterName: string, body: Database, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>>;
    /**
     * delete a database in cluster
     * @summary Delete cluster database
     * @param {string} engineName name of the engine
     * @param {string} orgName name of the Org
     * @param {string} clusterName name of the Cluster
     * @param {string} databaseName name of database
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    deleteDatabase(engineName: string, orgName: string, clusterName: string, databaseName: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>>;
    /**
     * get a database info in cluster
     * @param {string} engineName name of the engine
     * @param {string} orgName name of the Org
     * @param {string} clusterName name of the Cluster
     * @param {string} databaseName name of database
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getDatabase(engineName: string, orgName: string, clusterName: string, databaseName: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Database>>;
    /**
     * list databases for rdbms engine cluster
     * @summary List cluster databases
     * @param {string} engineName name of the engine
     * @param {string} orgName name of the Org
     * @param {string} clusterName name of the Cluster
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    listDatabases(engineName: string, orgName: string, clusterName: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<DatabaseList>>;
    /**
     * update a database config in cluster
     * @summary update database config
     * @param {string} engineName name of the engine
     * @param {string} orgName name of the Org
     * @param {string} clusterName name of the Cluster
     * @param {string} databaseName name of database
     * @param {{ [key: string]: string; }} [requestBody]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    updateDatabaseConfig(engineName: string, orgName: string, clusterName: string, databaseName: string, requestBody?: {
        [key: string]: string;
    }, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>>;
};
/**
 * DatabaseApi - factory interface
 * @export
 */
export declare const DatabaseApiFactory: (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) => {
    /**
     * create a database in cluster
     * @summary Create cluster database
     * @param {DatabaseApiCreateDatabaseRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    createDatabase(requestParameters: DatabaseApiCreateDatabaseRequest, options?: RawAxiosRequestConfig): AxiosPromise<void>;
    /**
     * delete a database in cluster
     * @summary Delete cluster database
     * @param {DatabaseApiDeleteDatabaseRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    deleteDatabase(requestParameters: DatabaseApiDeleteDatabaseRequest, options?: RawAxiosRequestConfig): AxiosPromise<void>;
    /**
     * get a database info in cluster
     * @param {DatabaseApiGetDatabaseRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getDatabase(requestParameters: DatabaseApiGetDatabaseRequest, options?: RawAxiosRequestConfig): AxiosPromise<Database>;
    /**
     * list databases for rdbms engine cluster
     * @summary List cluster databases
     * @param {DatabaseApiListDatabasesRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    listDatabases(requestParameters: DatabaseApiListDatabasesRequest, options?: RawAxiosRequestConfig): AxiosPromise<DatabaseList>;
    /**
     * update a database config in cluster
     * @summary update database config
     * @param {DatabaseApiUpdateDatabaseConfigRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    updateDatabaseConfig(requestParameters: DatabaseApiUpdateDatabaseConfigRequest, options?: RawAxiosRequestConfig): AxiosPromise<void>;
};
/**
 * DatabaseApi - interface
 * @export
 * @interface DatabaseApi
 */
export interface DatabaseApiInterface {
    /**
     * create a database in cluster
     * @summary Create cluster database
     * @param {DatabaseApiCreateDatabaseRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof DatabaseApiInterface
     */
    createDatabase(requestParameters: DatabaseApiCreateDatabaseRequest, options?: RawAxiosRequestConfig): AxiosPromise<void>;
    /**
     * delete a database in cluster
     * @summary Delete cluster database
     * @param {DatabaseApiDeleteDatabaseRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof DatabaseApiInterface
     */
    deleteDatabase(requestParameters: DatabaseApiDeleteDatabaseRequest, options?: RawAxiosRequestConfig): AxiosPromise<void>;
    /**
     * get a database info in cluster
     * @param {DatabaseApiGetDatabaseRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof DatabaseApiInterface
     */
    getDatabase(requestParameters: DatabaseApiGetDatabaseRequest, options?: RawAxiosRequestConfig): AxiosPromise<Database>;
    /**
     * list databases for rdbms engine cluster
     * @summary List cluster databases
     * @param {DatabaseApiListDatabasesRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof DatabaseApiInterface
     */
    listDatabases(requestParameters: DatabaseApiListDatabasesRequest, options?: RawAxiosRequestConfig): AxiosPromise<DatabaseList>;
    /**
     * update a database config in cluster
     * @summary update database config
     * @param {DatabaseApiUpdateDatabaseConfigRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof DatabaseApiInterface
     */
    updateDatabaseConfig(requestParameters: DatabaseApiUpdateDatabaseConfigRequest, options?: RawAxiosRequestConfig): AxiosPromise<void>;
}
/**
 * Request parameters for createDatabase operation in DatabaseApi.
 * @export
 * @interface DatabaseApiCreateDatabaseRequest
 */
export interface DatabaseApiCreateDatabaseRequest {
    /**
     * name of the engine
     * @type {string}
     * @memberof DatabaseApiCreateDatabase
     */
    readonly engineName: string;
    /**
     * name of the Org
     * @type {string}
     * @memberof DatabaseApiCreateDatabase
     */
    readonly orgName: string;
    /**
     * name of the Cluster
     * @type {string}
     * @memberof DatabaseApiCreateDatabase
     */
    readonly clusterName: string;
    /**
     *
     * @type {Database}
     * @memberof DatabaseApiCreateDatabase
     */
    readonly body: Database;
}
/**
 * Request parameters for deleteDatabase operation in DatabaseApi.
 * @export
 * @interface DatabaseApiDeleteDatabaseRequest
 */
export interface DatabaseApiDeleteDatabaseRequest {
    /**
     * name of the engine
     * @type {string}
     * @memberof DatabaseApiDeleteDatabase
     */
    readonly engineName: string;
    /**
     * name of the Org
     * @type {string}
     * @memberof DatabaseApiDeleteDatabase
     */
    readonly orgName: string;
    /**
     * name of the Cluster
     * @type {string}
     * @memberof DatabaseApiDeleteDatabase
     */
    readonly clusterName: string;
    /**
     * name of database
     * @type {string}
     * @memberof DatabaseApiDeleteDatabase
     */
    readonly databaseName: string;
}
/**
 * Request parameters for getDatabase operation in DatabaseApi.
 * @export
 * @interface DatabaseApiGetDatabaseRequest
 */
export interface DatabaseApiGetDatabaseRequest {
    /**
     * name of the engine
     * @type {string}
     * @memberof DatabaseApiGetDatabase
     */
    readonly engineName: string;
    /**
     * name of the Org
     * @type {string}
     * @memberof DatabaseApiGetDatabase
     */
    readonly orgName: string;
    /**
     * name of the Cluster
     * @type {string}
     * @memberof DatabaseApiGetDatabase
     */
    readonly clusterName: string;
    /**
     * name of database
     * @type {string}
     * @memberof DatabaseApiGetDatabase
     */
    readonly databaseName: string;
}
/**
 * Request parameters for listDatabases operation in DatabaseApi.
 * @export
 * @interface DatabaseApiListDatabasesRequest
 */
export interface DatabaseApiListDatabasesRequest {
    /**
     * name of the engine
     * @type {string}
     * @memberof DatabaseApiListDatabases
     */
    readonly engineName: string;
    /**
     * name of the Org
     * @type {string}
     * @memberof DatabaseApiListDatabases
     */
    readonly orgName: string;
    /**
     * name of the Cluster
     * @type {string}
     * @memberof DatabaseApiListDatabases
     */
    readonly clusterName: string;
}
/**
 * Request parameters for updateDatabaseConfig operation in DatabaseApi.
 * @export
 * @interface DatabaseApiUpdateDatabaseConfigRequest
 */
export interface DatabaseApiUpdateDatabaseConfigRequest {
    /**
     * name of the engine
     * @type {string}
     * @memberof DatabaseApiUpdateDatabaseConfig
     */
    readonly engineName: string;
    /**
     * name of the Org
     * @type {string}
     * @memberof DatabaseApiUpdateDatabaseConfig
     */
    readonly orgName: string;
    /**
     * name of the Cluster
     * @type {string}
     * @memberof DatabaseApiUpdateDatabaseConfig
     */
    readonly clusterName: string;
    /**
     * name of database
     * @type {string}
     * @memberof DatabaseApiUpdateDatabaseConfig
     */
    readonly databaseName: string;
    /**
     *
     * @type {{ [key: string]: string; }}
     * @memberof DatabaseApiUpdateDatabaseConfig
     */
    readonly requestBody?: {
        [key: string]: string;
    };
}
/**
 * DatabaseApi - object-oriented interface
 * @export
 * @class DatabaseApi
 * @extends {BaseAPI}
 */
export declare class DatabaseApi extends BaseAPI implements DatabaseApiInterface {
    /**
     * create a database in cluster
     * @summary Create cluster database
     * @param {DatabaseApiCreateDatabaseRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof DatabaseApi
     */
    createDatabase(requestParameters: DatabaseApiCreateDatabaseRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<void, any, {}>>;
    /**
     * delete a database in cluster
     * @summary Delete cluster database
     * @param {DatabaseApiDeleteDatabaseRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof DatabaseApi
     */
    deleteDatabase(requestParameters: DatabaseApiDeleteDatabaseRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<void, any, {}>>;
    /**
     * get a database info in cluster
     * @param {DatabaseApiGetDatabaseRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof DatabaseApi
     */
    getDatabase(requestParameters: DatabaseApiGetDatabaseRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<Database, any, {}>>;
    /**
     * list databases for rdbms engine cluster
     * @summary List cluster databases
     * @param {DatabaseApiListDatabasesRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof DatabaseApi
     */
    listDatabases(requestParameters: DatabaseApiListDatabasesRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<DatabaseList, any, {}>>;
    /**
     * update a database config in cluster
     * @summary update database config
     * @param {DatabaseApiUpdateDatabaseConfigRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof DatabaseApi
     */
    updateDatabaseConfig(requestParameters: DatabaseApiUpdateDatabaseConfigRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<void, any, {}>>;
}
//# sourceMappingURL=database-api.d.ts.map