/**
 * 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 { BackupList } from '../models';
import type { ImportBackup } from '../models';
import type { Storage } from '../models';
import type { StorageCheckResult } from '../models';
import type { StorageCreate } from '../models';
import type { StorageProvider } from '../models';
import type { StorageUpdate } from '../models';
/**
 * StorageApi - axios parameter creator
 * @export
 */
export declare const StorageApiAxiosParamCreator: (configuration?: Configuration) => {
    /**
     *
     * @summary Check if storage can be accessed
     * @param {StorageCreate} storageCreate
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    checkStorage: (storageCreate: StorageCreate, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     *
     * @summary Create a storage
     * @param {string} environmentName name of the environment
     * @param {StorageCreate} storageCreate
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    createStorage: (environmentName: string, storageCreate: StorageCreate, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     *
     * @summary Delete a storage
     * @param {string} environmentName name of the environment
     * @param {string} storageName name of the storage
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    deleteStorage: (environmentName: string, storageName: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     *
     * @summary Get a storage
     * @param {string} environmentName name of the environment
     * @param {string} storageName name of the storage
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getStorage: (environmentName: string, storageName: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     *
     * @summary scan and import backup records from storage
     * @param {string} environmentName name of the environment
     * @param {string} storageName name of the storage
     * @param {ImportBackup} importBackup
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    importBackup: (environmentName: string, storageName: string, importBackup: ImportBackup, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     *
     * @summary List storage providers for storage
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    listStorageProviders: (options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     *
     * @summary List storages
     * @param {string} environmentName name of the environment
     * @param {string} [name] the search key to search storage\&#39;s name
     * @param {string} [key] key to search storage\&#39;s tag
     * @param {string} [value] value to search storage\&#39;s tag
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    listStorages: (environmentName: string, name?: string, key?: string, value?: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     *
     * @summary Update a storage
     * @param {string} environmentName name of the environment
     * @param {string} storageName name of storage
     * @param {StorageUpdate} storageUpdate
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    updateStorage: (environmentName: string, storageName: string, storageUpdate: StorageUpdate, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
};
/**
 * StorageApi - functional programming interface
 * @export
 */
export declare const StorageApiFp: (configuration?: Configuration) => {
    /**
     *
     * @summary Check if storage can be accessed
     * @param {StorageCreate} storageCreate
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    checkStorage(storageCreate: StorageCreate, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<StorageCheckResult>>;
    /**
     *
     * @summary Create a storage
     * @param {string} environmentName name of the environment
     * @param {StorageCreate} storageCreate
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    createStorage(environmentName: string, storageCreate: StorageCreate, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Storage>>;
    /**
     *
     * @summary Delete a storage
     * @param {string} environmentName name of the environment
     * @param {string} storageName name of the storage
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    deleteStorage(environmentName: string, storageName: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>>;
    /**
     *
     * @summary Get a storage
     * @param {string} environmentName name of the environment
     * @param {string} storageName name of the storage
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getStorage(environmentName: string, storageName: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Storage>>;
    /**
     *
     * @summary scan and import backup records from storage
     * @param {string} environmentName name of the environment
     * @param {string} storageName name of the storage
     * @param {ImportBackup} importBackup
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    importBackup(environmentName: string, storageName: string, importBackup: ImportBackup, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<BackupList>>;
    /**
     *
     * @summary List storage providers for storage
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    listStorageProviders(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<StorageProvider>>>;
    /**
     *
     * @summary List storages
     * @param {string} environmentName name of the environment
     * @param {string} [name] the search key to search storage\&#39;s name
     * @param {string} [key] key to search storage\&#39;s tag
     * @param {string} [value] value to search storage\&#39;s tag
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    listStorages(environmentName: string, name?: string, key?: string, value?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<Storage>>>;
    /**
     *
     * @summary Update a storage
     * @param {string} environmentName name of the environment
     * @param {string} storageName name of storage
     * @param {StorageUpdate} storageUpdate
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    updateStorage(environmentName: string, storageName: string, storageUpdate: StorageUpdate, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Storage>>;
};
/**
 * StorageApi - factory interface
 * @export
 */
export declare const StorageApiFactory: (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) => {
    /**
     *
     * @summary Check if storage can be accessed
     * @param {StorageApiCheckStorageRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    checkStorage(requestParameters: StorageApiCheckStorageRequest, options?: RawAxiosRequestConfig): AxiosPromise<StorageCheckResult>;
    /**
     *
     * @summary Create a storage
     * @param {StorageApiCreateStorageRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    createStorage(requestParameters: StorageApiCreateStorageRequest, options?: RawAxiosRequestConfig): AxiosPromise<Storage>;
    /**
     *
     * @summary Delete a storage
     * @param {StorageApiDeleteStorageRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    deleteStorage(requestParameters: StorageApiDeleteStorageRequest, options?: RawAxiosRequestConfig): AxiosPromise<void>;
    /**
     *
     * @summary Get a storage
     * @param {StorageApiGetStorageRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getStorage(requestParameters: StorageApiGetStorageRequest, options?: RawAxiosRequestConfig): AxiosPromise<Storage>;
    /**
     *
     * @summary scan and import backup records from storage
     * @param {StorageApiImportBackupRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    importBackup(requestParameters: StorageApiImportBackupRequest, options?: RawAxiosRequestConfig): AxiosPromise<BackupList>;
    /**
     *
     * @summary List storage providers for storage
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    listStorageProviders(options?: RawAxiosRequestConfig): AxiosPromise<Array<StorageProvider>>;
    /**
     *
     * @summary List storages
     * @param {StorageApiListStoragesRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    listStorages(requestParameters: StorageApiListStoragesRequest, options?: RawAxiosRequestConfig): AxiosPromise<Array<Storage>>;
    /**
     *
     * @summary Update a storage
     * @param {StorageApiUpdateStorageRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    updateStorage(requestParameters: StorageApiUpdateStorageRequest, options?: RawAxiosRequestConfig): AxiosPromise<Storage>;
};
/**
 * StorageApi - interface
 * @export
 * @interface StorageApi
 */
export interface StorageApiInterface {
    /**
     *
     * @summary Check if storage can be accessed
     * @param {StorageApiCheckStorageRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof StorageApiInterface
     */
    checkStorage(requestParameters: StorageApiCheckStorageRequest, options?: RawAxiosRequestConfig): AxiosPromise<StorageCheckResult>;
    /**
     *
     * @summary Create a storage
     * @param {StorageApiCreateStorageRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof StorageApiInterface
     */
    createStorage(requestParameters: StorageApiCreateStorageRequest, options?: RawAxiosRequestConfig): AxiosPromise<Storage>;
    /**
     *
     * @summary Delete a storage
     * @param {StorageApiDeleteStorageRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof StorageApiInterface
     */
    deleteStorage(requestParameters: StorageApiDeleteStorageRequest, options?: RawAxiosRequestConfig): AxiosPromise<void>;
    /**
     *
     * @summary Get a storage
     * @param {StorageApiGetStorageRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof StorageApiInterface
     */
    getStorage(requestParameters: StorageApiGetStorageRequest, options?: RawAxiosRequestConfig): AxiosPromise<Storage>;
    /**
     *
     * @summary scan and import backup records from storage
     * @param {StorageApiImportBackupRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof StorageApiInterface
     */
    importBackup(requestParameters: StorageApiImportBackupRequest, options?: RawAxiosRequestConfig): AxiosPromise<BackupList>;
    /**
     *
     * @summary List storage providers for storage
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof StorageApiInterface
     */
    listStorageProviders(options?: RawAxiosRequestConfig): AxiosPromise<Array<StorageProvider>>;
    /**
     *
     * @summary List storages
     * @param {StorageApiListStoragesRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof StorageApiInterface
     */
    listStorages(requestParameters: StorageApiListStoragesRequest, options?: RawAxiosRequestConfig): AxiosPromise<Array<Storage>>;
    /**
     *
     * @summary Update a storage
     * @param {StorageApiUpdateStorageRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof StorageApiInterface
     */
    updateStorage(requestParameters: StorageApiUpdateStorageRequest, options?: RawAxiosRequestConfig): AxiosPromise<Storage>;
}
/**
 * Request parameters for checkStorage operation in StorageApi.
 * @export
 * @interface StorageApiCheckStorageRequest
 */
export interface StorageApiCheckStorageRequest {
    /**
     *
     * @type {StorageCreate}
     * @memberof StorageApiCheckStorage
     */
    readonly storageCreate: StorageCreate;
}
/**
 * Request parameters for createStorage operation in StorageApi.
 * @export
 * @interface StorageApiCreateStorageRequest
 */
export interface StorageApiCreateStorageRequest {
    /**
     * name of the environment
     * @type {string}
     * @memberof StorageApiCreateStorage
     */
    readonly environmentName: string;
    /**
     *
     * @type {StorageCreate}
     * @memberof StorageApiCreateStorage
     */
    readonly storageCreate: StorageCreate;
}
/**
 * Request parameters for deleteStorage operation in StorageApi.
 * @export
 * @interface StorageApiDeleteStorageRequest
 */
export interface StorageApiDeleteStorageRequest {
    /**
     * name of the environment
     * @type {string}
     * @memberof StorageApiDeleteStorage
     */
    readonly environmentName: string;
    /**
     * name of the storage
     * @type {string}
     * @memberof StorageApiDeleteStorage
     */
    readonly storageName: string;
}
/**
 * Request parameters for getStorage operation in StorageApi.
 * @export
 * @interface StorageApiGetStorageRequest
 */
export interface StorageApiGetStorageRequest {
    /**
     * name of the environment
     * @type {string}
     * @memberof StorageApiGetStorage
     */
    readonly environmentName: string;
    /**
     * name of the storage
     * @type {string}
     * @memberof StorageApiGetStorage
     */
    readonly storageName: string;
}
/**
 * Request parameters for importBackup operation in StorageApi.
 * @export
 * @interface StorageApiImportBackupRequest
 */
export interface StorageApiImportBackupRequest {
    /**
     * name of the environment
     * @type {string}
     * @memberof StorageApiImportBackup
     */
    readonly environmentName: string;
    /**
     * name of the storage
     * @type {string}
     * @memberof StorageApiImportBackup
     */
    readonly storageName: string;
    /**
     *
     * @type {ImportBackup}
     * @memberof StorageApiImportBackup
     */
    readonly importBackup: ImportBackup;
}
/**
 * Request parameters for listStorages operation in StorageApi.
 * @export
 * @interface StorageApiListStoragesRequest
 */
export interface StorageApiListStoragesRequest {
    /**
     * name of the environment
     * @type {string}
     * @memberof StorageApiListStorages
     */
    readonly environmentName: string;
    /**
     * the search key to search storage\&#39;s name
     * @type {string}
     * @memberof StorageApiListStorages
     */
    readonly name?: string;
    /**
     * key to search storage\&#39;s tag
     * @type {string}
     * @memberof StorageApiListStorages
     */
    readonly key?: string;
    /**
     * value to search storage\&#39;s tag
     * @type {string}
     * @memberof StorageApiListStorages
     */
    readonly value?: string;
}
/**
 * Request parameters for updateStorage operation in StorageApi.
 * @export
 * @interface StorageApiUpdateStorageRequest
 */
export interface StorageApiUpdateStorageRequest {
    /**
     * name of the environment
     * @type {string}
     * @memberof StorageApiUpdateStorage
     */
    readonly environmentName: string;
    /**
     * name of storage
     * @type {string}
     * @memberof StorageApiUpdateStorage
     */
    readonly storageName: string;
    /**
     *
     * @type {StorageUpdate}
     * @memberof StorageApiUpdateStorage
     */
    readonly storageUpdate: StorageUpdate;
}
/**
 * StorageApi - object-oriented interface
 * @export
 * @class StorageApi
 * @extends {BaseAPI}
 */
export declare class StorageApi extends BaseAPI implements StorageApiInterface {
    /**
     *
     * @summary Check if storage can be accessed
     * @param {StorageApiCheckStorageRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof StorageApi
     */
    checkStorage(requestParameters: StorageApiCheckStorageRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<StorageCheckResult, any, {}>>;
    /**
     *
     * @summary Create a storage
     * @param {StorageApiCreateStorageRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof StorageApi
     */
    createStorage(requestParameters: StorageApiCreateStorageRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<Storage, any, {}>>;
    /**
     *
     * @summary Delete a storage
     * @param {StorageApiDeleteStorageRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof StorageApi
     */
    deleteStorage(requestParameters: StorageApiDeleteStorageRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<void, any, {}>>;
    /**
     *
     * @summary Get a storage
     * @param {StorageApiGetStorageRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof StorageApi
     */
    getStorage(requestParameters: StorageApiGetStorageRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<Storage, any, {}>>;
    /**
     *
     * @summary scan and import backup records from storage
     * @param {StorageApiImportBackupRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof StorageApi
     */
    importBackup(requestParameters: StorageApiImportBackupRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<BackupList, any, {}>>;
    /**
     *
     * @summary List storage providers for storage
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof StorageApi
     */
    listStorageProviders(options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<StorageProvider[], any, {}>>;
    /**
     *
     * @summary List storages
     * @param {StorageApiListStoragesRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof StorageApi
     */
    listStorages(requestParameters: StorageApiListStoragesRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<Storage[], any, {}>>;
    /**
     *
     * @summary Update a storage
     * @param {StorageApiUpdateStorageRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof StorageApi
     */
    updateStorage(requestParameters: StorageApiUpdateStorageRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<Storage, any, {}>>;
}
//# sourceMappingURL=storage-api.d.ts.map