/**
 * KubeBlocks Cloud API
 * KubeBlocks Cloud API is a RESTful API for managing KubeBlocks Cloud resources.  The API is organized around REST.  Our API has predictable resource-oriented URLs, accepts `JSON-encoded` request bodies, returns `JSON-encoded` responses, and uses standard HTTP response codes, authentication, and verbs.  We use standard HTTP authentication and provide API keys to identify who you are. Your API keys carry many privileges, so be sure to keep them secret! Do not share your secret API keys in publicly accessible areas such as GitHub, client-side code, and so forth.
 *
 * 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 { DisasterRecoveryClusterList } from '../models';
import type { DisasterRecoveryCreate } from '../models';
import type { DisasterRecoveryHistory } from '../models';
import type { DisasterRecoveryPromote } from '../models';
import type { DisasterRecoveryStatusResponse } from '../models';
import type { DisasterRecoveryTask } from '../models';
/**
 * DisasterRecoveryApi - axios parameter creator
 * @export
 */
export declare const DisasterRecoveryApiAxiosParamCreator: (configuration?: Configuration) => {
    /**
     * Create a new disaster recovery instance for a database cluster.
     * @summary Create a new disaster recovery instance
     * @param {string} parentClusterID The ID of the parent database cluster
     * @param {string} orgName name of the org
     * @param {DisasterRecoveryCreate} body
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    createDisasterRecovery: (parentClusterID: string, orgName: string, body: DisasterRecoveryCreate, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * Delete a specific disaster recovery instance
     * @summary Delete a disaster recovery instance
     * @param {string} orgName name of the org
     * @param {string} [logicalInstanceID] The ID of the disaster recovery logical instance
     * @param {string} [clusterID] The ID of the disaster recovery cluster
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    deleteDisasterRecovery: (orgName: string, logicalInstanceID?: string, clusterID?: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * Retrieve the history of failover and failback operations for a specific disaster recovery instance.
     * @summary Get switch history of a disaster recovery instance
     * @param {string} clusterID The ID of the disaster recovery instance
     * @param {string} orgName name of the org
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getDisasterRecoveryHistory: (clusterID: string, orgName: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * Get detailed information about the status of a specific disaster recovery instance, including delay and current replication point.
     * @summary Retrieve Disaster Recovery Instance Status
     * @param {string} clusterID Unique identifier of the disaster recovery instance
     * @param {string} orgName Name of the organization
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getDisasterRecoveryStatus: (clusterID: string, orgName: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * Retrieve a list of disaster recovery instances for a specific database cluster.
     * @summary List Disaster Recovery instances under the main cluster
     * @param {string} parentClusterID The ID of the parent database cluster
     * @param {string} orgName name of the org
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    listDisasterRecovery: (parentClusterID: string, orgName: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * Promote the disaster recovery instance to the primary database instance.
     * @summary Promote a disaster recovery instance to the main instance
     * @param {string} clusterID The ID of the disaster recovery instance
     * @param {string} orgName name of the org
     * @param {DisasterRecoveryPromote} body
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    promoteDisasterRecovery: (clusterID: string, orgName: string, body: DisasterRecoveryPromote, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
};
/**
 * DisasterRecoveryApi - functional programming interface
 * @export
 */
export declare const DisasterRecoveryApiFp: (configuration?: Configuration) => {
    /**
     * Create a new disaster recovery instance for a database cluster.
     * @summary Create a new disaster recovery instance
     * @param {string} parentClusterID The ID of the parent database cluster
     * @param {string} orgName name of the org
     * @param {DisasterRecoveryCreate} body
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    createDisasterRecovery(parentClusterID: string, orgName: string, body: DisasterRecoveryCreate, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<DisasterRecoveryTask>>;
    /**
     * Delete a specific disaster recovery instance
     * @summary Delete a disaster recovery instance
     * @param {string} orgName name of the org
     * @param {string} [logicalInstanceID] The ID of the disaster recovery logical instance
     * @param {string} [clusterID] The ID of the disaster recovery cluster
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    deleteDisasterRecovery(orgName: string, logicalInstanceID?: string, clusterID?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<DisasterRecoveryTask>>;
    /**
     * Retrieve the history of failover and failback operations for a specific disaster recovery instance.
     * @summary Get switch history of a disaster recovery instance
     * @param {string} clusterID The ID of the disaster recovery instance
     * @param {string} orgName name of the org
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getDisasterRecoveryHistory(clusterID: string, orgName: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<DisasterRecoveryHistory>>;
    /**
     * Get detailed information about the status of a specific disaster recovery instance, including delay and current replication point.
     * @summary Retrieve Disaster Recovery Instance Status
     * @param {string} clusterID Unique identifier of the disaster recovery instance
     * @param {string} orgName Name of the organization
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getDisasterRecoveryStatus(clusterID: string, orgName: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<DisasterRecoveryStatusResponse>>;
    /**
     * Retrieve a list of disaster recovery instances for a specific database cluster.
     * @summary List Disaster Recovery instances under the main cluster
     * @param {string} parentClusterID The ID of the parent database cluster
     * @param {string} orgName name of the org
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    listDisasterRecovery(parentClusterID: string, orgName: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<DisasterRecoveryClusterList>>;
    /**
     * Promote the disaster recovery instance to the primary database instance.
     * @summary Promote a disaster recovery instance to the main instance
     * @param {string} clusterID The ID of the disaster recovery instance
     * @param {string} orgName name of the org
     * @param {DisasterRecoveryPromote} body
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    promoteDisasterRecovery(clusterID: string, orgName: string, body: DisasterRecoveryPromote, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<DisasterRecoveryTask>>;
};
/**
 * DisasterRecoveryApi - factory interface
 * @export
 */
export declare const DisasterRecoveryApiFactory: (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) => {
    /**
     * Create a new disaster recovery instance for a database cluster.
     * @summary Create a new disaster recovery instance
     * @param {DisasterRecoveryApiCreateDisasterRecoveryRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    createDisasterRecovery(requestParameters: DisasterRecoveryApiCreateDisasterRecoveryRequest, options?: RawAxiosRequestConfig): AxiosPromise<DisasterRecoveryTask>;
    /**
     * Delete a specific disaster recovery instance
     * @summary Delete a disaster recovery instance
     * @param {DisasterRecoveryApiDeleteDisasterRecoveryRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    deleteDisasterRecovery(requestParameters: DisasterRecoveryApiDeleteDisasterRecoveryRequest, options?: RawAxiosRequestConfig): AxiosPromise<DisasterRecoveryTask>;
    /**
     * Retrieve the history of failover and failback operations for a specific disaster recovery instance.
     * @summary Get switch history of a disaster recovery instance
     * @param {DisasterRecoveryApiGetDisasterRecoveryHistoryRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getDisasterRecoveryHistory(requestParameters: DisasterRecoveryApiGetDisasterRecoveryHistoryRequest, options?: RawAxiosRequestConfig): AxiosPromise<DisasterRecoveryHistory>;
    /**
     * Get detailed information about the status of a specific disaster recovery instance, including delay and current replication point.
     * @summary Retrieve Disaster Recovery Instance Status
     * @param {DisasterRecoveryApiGetDisasterRecoveryStatusRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getDisasterRecoveryStatus(requestParameters: DisasterRecoveryApiGetDisasterRecoveryStatusRequest, options?: RawAxiosRequestConfig): AxiosPromise<DisasterRecoveryStatusResponse>;
    /**
     * Retrieve a list of disaster recovery instances for a specific database cluster.
     * @summary List Disaster Recovery instances under the main cluster
     * @param {DisasterRecoveryApiListDisasterRecoveryRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    listDisasterRecovery(requestParameters: DisasterRecoveryApiListDisasterRecoveryRequest, options?: RawAxiosRequestConfig): AxiosPromise<DisasterRecoveryClusterList>;
    /**
     * Promote the disaster recovery instance to the primary database instance.
     * @summary Promote a disaster recovery instance to the main instance
     * @param {DisasterRecoveryApiPromoteDisasterRecoveryRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    promoteDisasterRecovery(requestParameters: DisasterRecoveryApiPromoteDisasterRecoveryRequest, options?: RawAxiosRequestConfig): AxiosPromise<DisasterRecoveryTask>;
};
/**
 * DisasterRecoveryApi - interface
 * @export
 * @interface DisasterRecoveryApi
 */
export interface DisasterRecoveryApiInterface {
    /**
     * Create a new disaster recovery instance for a database cluster.
     * @summary Create a new disaster recovery instance
     * @param {DisasterRecoveryApiCreateDisasterRecoveryRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof DisasterRecoveryApiInterface
     */
    createDisasterRecovery(requestParameters: DisasterRecoveryApiCreateDisasterRecoveryRequest, options?: RawAxiosRequestConfig): AxiosPromise<DisasterRecoveryTask>;
    /**
     * Delete a specific disaster recovery instance
     * @summary Delete a disaster recovery instance
     * @param {DisasterRecoveryApiDeleteDisasterRecoveryRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof DisasterRecoveryApiInterface
     */
    deleteDisasterRecovery(requestParameters: DisasterRecoveryApiDeleteDisasterRecoveryRequest, options?: RawAxiosRequestConfig): AxiosPromise<DisasterRecoveryTask>;
    /**
     * Retrieve the history of failover and failback operations for a specific disaster recovery instance.
     * @summary Get switch history of a disaster recovery instance
     * @param {DisasterRecoveryApiGetDisasterRecoveryHistoryRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof DisasterRecoveryApiInterface
     */
    getDisasterRecoveryHistory(requestParameters: DisasterRecoveryApiGetDisasterRecoveryHistoryRequest, options?: RawAxiosRequestConfig): AxiosPromise<DisasterRecoveryHistory>;
    /**
     * Get detailed information about the status of a specific disaster recovery instance, including delay and current replication point.
     * @summary Retrieve Disaster Recovery Instance Status
     * @param {DisasterRecoveryApiGetDisasterRecoveryStatusRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof DisasterRecoveryApiInterface
     */
    getDisasterRecoveryStatus(requestParameters: DisasterRecoveryApiGetDisasterRecoveryStatusRequest, options?: RawAxiosRequestConfig): AxiosPromise<DisasterRecoveryStatusResponse>;
    /**
     * Retrieve a list of disaster recovery instances for a specific database cluster.
     * @summary List Disaster Recovery instances under the main cluster
     * @param {DisasterRecoveryApiListDisasterRecoveryRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof DisasterRecoveryApiInterface
     */
    listDisasterRecovery(requestParameters: DisasterRecoveryApiListDisasterRecoveryRequest, options?: RawAxiosRequestConfig): AxiosPromise<DisasterRecoveryClusterList>;
    /**
     * Promote the disaster recovery instance to the primary database instance.
     * @summary Promote a disaster recovery instance to the main instance
     * @param {DisasterRecoveryApiPromoteDisasterRecoveryRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof DisasterRecoveryApiInterface
     */
    promoteDisasterRecovery(requestParameters: DisasterRecoveryApiPromoteDisasterRecoveryRequest, options?: RawAxiosRequestConfig): AxiosPromise<DisasterRecoveryTask>;
}
/**
 * Request parameters for createDisasterRecovery operation in DisasterRecoveryApi.
 * @export
 * @interface DisasterRecoveryApiCreateDisasterRecoveryRequest
 */
export interface DisasterRecoveryApiCreateDisasterRecoveryRequest {
    /**
     * The ID of the parent database cluster
     * @type {string}
     * @memberof DisasterRecoveryApiCreateDisasterRecovery
     */
    readonly parentClusterID: string;
    /**
     * name of the org
     * @type {string}
     * @memberof DisasterRecoveryApiCreateDisasterRecovery
     */
    readonly orgName: string;
    /**
     *
     * @type {DisasterRecoveryCreate}
     * @memberof DisasterRecoveryApiCreateDisasterRecovery
     */
    readonly body: DisasterRecoveryCreate;
}
/**
 * Request parameters for deleteDisasterRecovery operation in DisasterRecoveryApi.
 * @export
 * @interface DisasterRecoveryApiDeleteDisasterRecoveryRequest
 */
export interface DisasterRecoveryApiDeleteDisasterRecoveryRequest {
    /**
     * name of the org
     * @type {string}
     * @memberof DisasterRecoveryApiDeleteDisasterRecovery
     */
    readonly orgName: string;
    /**
     * The ID of the disaster recovery logical instance
     * @type {string}
     * @memberof DisasterRecoveryApiDeleteDisasterRecovery
     */
    readonly logicalInstanceID?: string;
    /**
     * The ID of the disaster recovery cluster
     * @type {string}
     * @memberof DisasterRecoveryApiDeleteDisasterRecovery
     */
    readonly clusterID?: string;
}
/**
 * Request parameters for getDisasterRecoveryHistory operation in DisasterRecoveryApi.
 * @export
 * @interface DisasterRecoveryApiGetDisasterRecoveryHistoryRequest
 */
export interface DisasterRecoveryApiGetDisasterRecoveryHistoryRequest {
    /**
     * The ID of the disaster recovery instance
     * @type {string}
     * @memberof DisasterRecoveryApiGetDisasterRecoveryHistory
     */
    readonly clusterID: string;
    /**
     * name of the org
     * @type {string}
     * @memberof DisasterRecoveryApiGetDisasterRecoveryHistory
     */
    readonly orgName: string;
}
/**
 * Request parameters for getDisasterRecoveryStatus operation in DisasterRecoveryApi.
 * @export
 * @interface DisasterRecoveryApiGetDisasterRecoveryStatusRequest
 */
export interface DisasterRecoveryApiGetDisasterRecoveryStatusRequest {
    /**
     * Unique identifier of the disaster recovery instance
     * @type {string}
     * @memberof DisasterRecoveryApiGetDisasterRecoveryStatus
     */
    readonly clusterID: string;
    /**
     * Name of the organization
     * @type {string}
     * @memberof DisasterRecoveryApiGetDisasterRecoveryStatus
     */
    readonly orgName: string;
}
/**
 * Request parameters for listDisasterRecovery operation in DisasterRecoveryApi.
 * @export
 * @interface DisasterRecoveryApiListDisasterRecoveryRequest
 */
export interface DisasterRecoveryApiListDisasterRecoveryRequest {
    /**
     * The ID of the parent database cluster
     * @type {string}
     * @memberof DisasterRecoveryApiListDisasterRecovery
     */
    readonly parentClusterID: string;
    /**
     * name of the org
     * @type {string}
     * @memberof DisasterRecoveryApiListDisasterRecovery
     */
    readonly orgName: string;
}
/**
 * Request parameters for promoteDisasterRecovery operation in DisasterRecoveryApi.
 * @export
 * @interface DisasterRecoveryApiPromoteDisasterRecoveryRequest
 */
export interface DisasterRecoveryApiPromoteDisasterRecoveryRequest {
    /**
     * The ID of the disaster recovery instance
     * @type {string}
     * @memberof DisasterRecoveryApiPromoteDisasterRecovery
     */
    readonly clusterID: string;
    /**
     * name of the org
     * @type {string}
     * @memberof DisasterRecoveryApiPromoteDisasterRecovery
     */
    readonly orgName: string;
    /**
     *
     * @type {DisasterRecoveryPromote}
     * @memberof DisasterRecoveryApiPromoteDisasterRecovery
     */
    readonly body: DisasterRecoveryPromote;
}
/**
 * DisasterRecoveryApi - object-oriented interface
 * @export
 * @class DisasterRecoveryApi
 * @extends {BaseAPI}
 */
export declare class DisasterRecoveryApi extends BaseAPI implements DisasterRecoveryApiInterface {
    /**
     * Create a new disaster recovery instance for a database cluster.
     * @summary Create a new disaster recovery instance
     * @param {DisasterRecoveryApiCreateDisasterRecoveryRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof DisasterRecoveryApi
     */
    createDisasterRecovery(requestParameters: DisasterRecoveryApiCreateDisasterRecoveryRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<DisasterRecoveryTask, any, {}>>;
    /**
     * Delete a specific disaster recovery instance
     * @summary Delete a disaster recovery instance
     * @param {DisasterRecoveryApiDeleteDisasterRecoveryRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof DisasterRecoveryApi
     */
    deleteDisasterRecovery(requestParameters: DisasterRecoveryApiDeleteDisasterRecoveryRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<DisasterRecoveryTask, any, {}>>;
    /**
     * Retrieve the history of failover and failback operations for a specific disaster recovery instance.
     * @summary Get switch history of a disaster recovery instance
     * @param {DisasterRecoveryApiGetDisasterRecoveryHistoryRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof DisasterRecoveryApi
     */
    getDisasterRecoveryHistory(requestParameters: DisasterRecoveryApiGetDisasterRecoveryHistoryRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<DisasterRecoveryHistory, any, {}>>;
    /**
     * Get detailed information about the status of a specific disaster recovery instance, including delay and current replication point.
     * @summary Retrieve Disaster Recovery Instance Status
     * @param {DisasterRecoveryApiGetDisasterRecoveryStatusRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof DisasterRecoveryApi
     */
    getDisasterRecoveryStatus(requestParameters: DisasterRecoveryApiGetDisasterRecoveryStatusRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<DisasterRecoveryStatusResponse, any, {}>>;
    /**
     * Retrieve a list of disaster recovery instances for a specific database cluster.
     * @summary List Disaster Recovery instances under the main cluster
     * @param {DisasterRecoveryApiListDisasterRecoveryRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof DisasterRecoveryApi
     */
    listDisasterRecovery(requestParameters: DisasterRecoveryApiListDisasterRecoveryRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<DisasterRecoveryClusterList, any, {}>>;
    /**
     * Promote the disaster recovery instance to the primary database instance.
     * @summary Promote a disaster recovery instance to the main instance
     * @param {DisasterRecoveryApiPromoteDisasterRecoveryRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof DisasterRecoveryApi
     */
    promoteDisasterRecovery(requestParameters: DisasterRecoveryApiPromoteDisasterRecoveryRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<DisasterRecoveryTask, any, {}>>;
}
//# sourceMappingURL=disaster-recovery-api.d.ts.map