/* tslint:disable */
/* eslint-disable */
/**
 * KubeBlocks Cloud Internal API
 * The Internal API is using for interaction of ApeCloud platform microservices. 
 *
 * The version of the OpenAPI document: 1.0.0
 * 
 *
 * 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 globalAxios from 'axios';
// Some imports not used depending on template conditions
// @ts-ignore
import { DUMMY_BASE_URL, assertParamExists, setApiKeyToObject, setBasicAuthToObject, setBearerAuthToObject, setOAuthToObject, setSearchParams, serializeDataIfNeeded, toPathString, createRequestFunction } from '../common';
// @ts-ignore
import { BASE_PATH, COLLECTION_FORMATS, type RequestArgs, BaseAPI, RequiredError, operationServerMap } from '../base';
// @ts-ignore
import type { APIErrorResponse } from '../models';
// @ts-ignore
import type { Cluster } from '../models';
// @ts-ignore
import type { ClusterList } from '../models';
// @ts-ignore
import type { ClusterUpdate } from '../models';
// @ts-ignore
import type { EndpointList } from '../models';
// @ts-ignore
import type { EnvironmentStorage } from '../models';
// @ts-ignore
import type { EnvironmentType } from '../models';
/**
 * ClusterApi - axios parameter creator
 * @export
 */
export const ClusterApiAxiosParamCreator = function (configuration?: Configuration) {
    return {
        /**
         * 
         * @summary Create new cluster
         * @param {string} orgName name of the Org
         * @param {Cluster} body 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createCluster: async (orgName: string, body: Cluster, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'orgName' is not null or undefined
            assertParamExists('createCluster', 'orgName', orgName)
            // verify required parameter 'body' is not null or undefined
            assertParamExists('createCluster', 'body', body)
            const localVarPath = `/internal/v1/organizations/{orgName}/clusters`
                .replace(`{${"orgName"}}`, encodeURIComponent(String(orgName)));
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication BasicAuth required
            // http basic authentication required
            setBasicAuthToObject(localVarRequestOptions, configuration)


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

            setSearchParams(localVarUrlObj, localVarQueryParameter);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Create Environment Minio Cluster
         * @param {string} environmentName name of the environment
         * @param {EnvironmentStorage} [environmentStorage] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createMinioCluster: async (environmentName: string, environmentStorage?: EnvironmentStorage, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'environmentName' is not null or undefined
            assertParamExists('createMinioCluster', 'environmentName', environmentName)
            const localVarPath = `/internal/v1/environments/{environmentName}/minio`
                .replace(`{${"environmentName"}}`, encodeURIComponent(String(environmentName)));
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication BasicAuth required
            // http basic authentication required
            setBasicAuthToObject(localVarRequestOptions, configuration)


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

            setSearchParams(localVarUrlObj, localVarQueryParameter);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(environmentStorage, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Delete cluster
         * @param {string} orgName name of the Org
         * @param {string} clusterName name of the KubeBlocks cluster
         * @param {boolean} [force] if it is true, the cluster will be deleted no matter what the termination policy is, and will not be moved to the recycle bin.
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteCluster: async (orgName: string, clusterName: string, force?: boolean, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'orgName' is not null or undefined
            assertParamExists('deleteCluster', 'orgName', orgName)
            // verify required parameter 'clusterName' is not null or undefined
            assertParamExists('deleteCluster', 'clusterName', clusterName)
            const localVarPath = `/internal/v1/organizations/{orgName}/clusters/{clusterName}`
                .replace(`{${"orgName"}}`, encodeURIComponent(String(orgName)))
                .replace(`{${"clusterName"}}`, encodeURIComponent(String(clusterName)));
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication BasicAuth required
            // http basic authentication required
            setBasicAuthToObject(localVarRequestOptions, configuration)

            if (force !== undefined) {
                localVarQueryParameter['force'] = force;
            }


    
            setSearchParams(localVarUrlObj, localVarQueryParameter);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Delete Environment Storage Resource
         * @param {string} environmentName name of the environment
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteEnvironmentStorage: async (environmentName: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'environmentName' is not null or undefined
            assertParamExists('deleteEnvironmentStorage', 'environmentName', environmentName)
            const localVarPath = `/internal/v1/environments/{environmentName}/storages`
                .replace(`{${"environmentName"}}`, encodeURIComponent(String(environmentName)));
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication BasicAuth required
            // http basic authentication required
            setBasicAuthToObject(localVarRequestOptions, configuration)


    
            setSearchParams(localVarUrlObj, localVarQueryParameter);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Delete Environment Minio Cluster
         * @param {string} environmentName name of the environment
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteMinioCluster: async (environmentName: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'environmentName' is not null or undefined
            assertParamExists('deleteMinioCluster', 'environmentName', environmentName)
            const localVarPath = `/internal/v1/environments/{environmentName}/minio`
                .replace(`{${"environmentName"}}`, encodeURIComponent(String(environmentName)));
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication BasicAuth required
            // http basic authentication required
            setBasicAuthToObject(localVarRequestOptions, configuration)


    
            setSearchParams(localVarUrlObj, localVarQueryParameter);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Delete Environment VictoriaMetrics Cluster
         * @param {string} environmentName name of the environment
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteVictoriaMetricsCluster: async (environmentName: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'environmentName' is not null or undefined
            assertParamExists('deleteVictoriaMetricsCluster', 'environmentName', environmentName)
            const localVarPath = `/internal/v1/environments/{environmentName}/victoriaMetricsCluster`
                .replace(`{${"environmentName"}}`, encodeURIComponent(String(environmentName)));
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication BasicAuth required
            // http basic authentication required
            setBasicAuthToObject(localVarRequestOptions, configuration)


    
            setSearchParams(localVarUrlObj, localVarQueryParameter);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Get cluster details
         * @param {string} orgName name of the Org
         * @param {string} clusterName name of the KubeBlocks cluster
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getCluster: async (orgName: string, clusterName: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'orgName' is not null or undefined
            assertParamExists('getCluster', 'orgName', orgName)
            // verify required parameter 'clusterName' is not null or undefined
            assertParamExists('getCluster', 'clusterName', clusterName)
            const localVarPath = `/internal/v1/organizations/{orgName}/clusters/{clusterName}`
                .replace(`{${"orgName"}}`, encodeURIComponent(String(orgName)))
                .replace(`{${"clusterName"}}`, encodeURIComponent(String(clusterName)));
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication BasicAuth required
            // http basic authentication required
            setBasicAuthToObject(localVarRequestOptions, configuration)


    
            setSearchParams(localVarUrlObj, localVarQueryParameter);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary List clusters in the Org
         * @param {string} orgName name of the Org
         * @param {string} [clusterDefinition] The clusterDefinition in the List request
         * @param {string} [environmentName] Environment Type
         * @param {EnvironmentType} [environmentType] Environment Type
         * @param {string} [tagKey] Tag key
         * @param {string} [tagValue] Tag value
         * @param {Array<string>} [tagKeys] A list of tags\&#39; keys
         * @param {Array<string>} [tagValues] A list of tags\&#39; values corresponding to the tagKeys
         * @param {number} [licenseId] license id
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        listCluster: async (orgName: string, clusterDefinition?: string, environmentName?: string, environmentType?: EnvironmentType, tagKey?: string, tagValue?: string, tagKeys?: Array<string>, tagValues?: Array<string>, licenseId?: number, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'orgName' is not null or undefined
            assertParamExists('listCluster', 'orgName', orgName)
            const localVarPath = `/internal/v1/organizations/{orgName}/clusters`
                .replace(`{${"orgName"}}`, encodeURIComponent(String(orgName)));
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication BasicAuth required
            // http basic authentication required
            setBasicAuthToObject(localVarRequestOptions, configuration)

            if (clusterDefinition !== undefined) {
                localVarQueryParameter['clusterDefinition'] = clusterDefinition;
            }

            if (environmentName !== undefined) {
                localVarQueryParameter['environmentName'] = environmentName;
            }

            if (environmentType !== undefined) {
                localVarQueryParameter['environmentType'] = environmentType;
            }

            if (tagKey !== undefined) {
                localVarQueryParameter['tagKey'] = tagKey;
            }

            if (tagValue !== undefined) {
                localVarQueryParameter['tagValue'] = tagValue;
            }

            if (tagKeys) {
                localVarQueryParameter['tagKeys'] = tagKeys;
            }

            if (tagValues) {
                localVarQueryParameter['tagValues'] = tagValues;
            }

            if (licenseId !== undefined) {
                localVarQueryParameter['licenseId'] = licenseId;
            }


    
            setSearchParams(localVarUrlObj, localVarQueryParameter);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary List cluster endpoints
         * @param {string} orgName name of the Org
         * @param {string} clusterName name of the KubeBlocks cluster
         * @param {number} [nodePortHostCount] count of the NodePort host
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        listEndpoints: async (orgName: string, clusterName: string, nodePortHostCount?: number, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'orgName' is not null or undefined
            assertParamExists('listEndpoints', 'orgName', orgName)
            // verify required parameter 'clusterName' is not null or undefined
            assertParamExists('listEndpoints', 'clusterName', clusterName)
            const localVarPath = `/internal/v1/organizations/{orgName}/clusters/{clusterName}/endpoints`
                .replace(`{${"orgName"}}`, encodeURIComponent(String(orgName)))
                .replace(`{${"clusterName"}}`, encodeURIComponent(String(clusterName)));
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication BasicAuth required
            // http basic authentication required
            setBasicAuthToObject(localVarRequestOptions, configuration)

            if (nodePortHostCount !== undefined) {
                localVarQueryParameter['nodePortHostCount'] = nodePortHostCount;
            }


    
            setSearchParams(localVarUrlObj, localVarQueryParameter);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Update the specified Cluster
         * @summary Update cluster specified fields
         * @param {string} orgName name of the Org
         * @param {string} clusterName name of the KubeBlocks cluster
         * @param {ClusterUpdate} body 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        patchCluster: async (orgName: string, clusterName: string, body: ClusterUpdate, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'orgName' is not null or undefined
            assertParamExists('patchCluster', 'orgName', orgName)
            // verify required parameter 'clusterName' is not null or undefined
            assertParamExists('patchCluster', 'clusterName', clusterName)
            // verify required parameter 'body' is not null or undefined
            assertParamExists('patchCluster', 'body', body)
            const localVarPath = `/internal/v1/organizations/{orgName}/clusters/{clusterName}`
                .replace(`{${"orgName"}}`, encodeURIComponent(String(orgName)))
                .replace(`{${"clusterName"}}`, encodeURIComponent(String(clusterName)));
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'PATCH', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication BasicAuth required
            // http basic authentication required
            setBasicAuthToObject(localVarRequestOptions, configuration)


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

            setSearchParams(localVarUrlObj, localVarQueryParameter);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
    }
};

/**
 * ClusterApi - functional programming interface
 * @export
 */
export const ClusterApiFp = function(configuration?: Configuration) {
    const localVarAxiosParamCreator = ClusterApiAxiosParamCreator(configuration)
    return {
        /**
         * 
         * @summary Create new cluster
         * @param {string} orgName name of the Org
         * @param {Cluster} body 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async createCluster(orgName: string, body: Cluster, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Cluster>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.createCluster(orgName, body, options);
            const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
            const localVarOperationServerBasePath = operationServerMap['ClusterApi.createCluster']?.[localVarOperationServerIndex]?.url;
            return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
        },
        /**
         * 
         * @summary Create Environment Minio Cluster
         * @param {string} environmentName name of the environment
         * @param {EnvironmentStorage} [environmentStorage] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async createMinioCluster(environmentName: string, environmentStorage?: EnvironmentStorage, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Cluster>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.createMinioCluster(environmentName, environmentStorage, options);
            const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
            const localVarOperationServerBasePath = operationServerMap['ClusterApi.createMinioCluster']?.[localVarOperationServerIndex]?.url;
            return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
        },
        /**
         * 
         * @summary Delete cluster
         * @param {string} orgName name of the Org
         * @param {string} clusterName name of the KubeBlocks cluster
         * @param {boolean} [force] if it is true, the cluster will be deleted no matter what the termination policy is, and will not be moved to the recycle bin.
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async deleteCluster(orgName: string, clusterName: string, force?: boolean, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<object>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.deleteCluster(orgName, clusterName, force, options);
            const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
            const localVarOperationServerBasePath = operationServerMap['ClusterApi.deleteCluster']?.[localVarOperationServerIndex]?.url;
            return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
        },
        /**
         * 
         * @summary Delete Environment Storage Resource
         * @param {string} environmentName name of the environment
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async deleteEnvironmentStorage(environmentName: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<object>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.deleteEnvironmentStorage(environmentName, options);
            const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
            const localVarOperationServerBasePath = operationServerMap['ClusterApi.deleteEnvironmentStorage']?.[localVarOperationServerIndex]?.url;
            return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
        },
        /**
         * 
         * @summary Delete Environment Minio Cluster
         * @param {string} environmentName name of the environment
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async deleteMinioCluster(environmentName: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.deleteMinioCluster(environmentName, options);
            const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
            const localVarOperationServerBasePath = operationServerMap['ClusterApi.deleteMinioCluster']?.[localVarOperationServerIndex]?.url;
            return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
        },
        /**
         * 
         * @summary Delete Environment VictoriaMetrics Cluster
         * @param {string} environmentName name of the environment
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async deleteVictoriaMetricsCluster(environmentName: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Cluster>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.deleteVictoriaMetricsCluster(environmentName, options);
            const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
            const localVarOperationServerBasePath = operationServerMap['ClusterApi.deleteVictoriaMetricsCluster']?.[localVarOperationServerIndex]?.url;
            return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
        },
        /**
         * 
         * @summary Get cluster details
         * @param {string} orgName name of the Org
         * @param {string} clusterName name of the KubeBlocks cluster
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getCluster(orgName: string, clusterName: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Cluster>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getCluster(orgName, clusterName, options);
            const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
            const localVarOperationServerBasePath = operationServerMap['ClusterApi.getCluster']?.[localVarOperationServerIndex]?.url;
            return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
        },
        /**
         * 
         * @summary List clusters in the Org
         * @param {string} orgName name of the Org
         * @param {string} [clusterDefinition] The clusterDefinition in the List request
         * @param {string} [environmentName] Environment Type
         * @param {EnvironmentType} [environmentType] Environment Type
         * @param {string} [tagKey] Tag key
         * @param {string} [tagValue] Tag value
         * @param {Array<string>} [tagKeys] A list of tags\&#39; keys
         * @param {Array<string>} [tagValues] A list of tags\&#39; values corresponding to the tagKeys
         * @param {number} [licenseId] license id
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async listCluster(orgName: string, clusterDefinition?: string, environmentName?: string, environmentType?: EnvironmentType, tagKey?: string, tagValue?: string, tagKeys?: Array<string>, tagValues?: Array<string>, licenseId?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ClusterList>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.listCluster(orgName, clusterDefinition, environmentName, environmentType, tagKey, tagValue, tagKeys, tagValues, licenseId, options);
            const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
            const localVarOperationServerBasePath = operationServerMap['ClusterApi.listCluster']?.[localVarOperationServerIndex]?.url;
            return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
        },
        /**
         * 
         * @summary List cluster endpoints
         * @param {string} orgName name of the Org
         * @param {string} clusterName name of the KubeBlocks cluster
         * @param {number} [nodePortHostCount] count of the NodePort host
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async listEndpoints(orgName: string, clusterName: string, nodePortHostCount?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<EndpointList>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.listEndpoints(orgName, clusterName, nodePortHostCount, options);
            const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
            const localVarOperationServerBasePath = operationServerMap['ClusterApi.listEndpoints']?.[localVarOperationServerIndex]?.url;
            return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
        },
        /**
         * Update the specified Cluster
         * @summary Update cluster specified fields
         * @param {string} orgName name of the Org
         * @param {string} clusterName name of the KubeBlocks cluster
         * @param {ClusterUpdate} body 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async patchCluster(orgName: string, clusterName: string, body: ClusterUpdate, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Cluster>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.patchCluster(orgName, clusterName, body, options);
            const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
            const localVarOperationServerBasePath = operationServerMap['ClusterApi.patchCluster']?.[localVarOperationServerIndex]?.url;
            return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
        },
    }
};

/**
 * ClusterApi - factory interface
 * @export
 */
export const ClusterApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
    const localVarFp = ClusterApiFp(configuration)
    return {
        /**
         * 
         * @summary Create new cluster
         * @param {ClusterApiCreateClusterRequest} requestParameters Request parameters.
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createCluster(requestParameters: ClusterApiCreateClusterRequest, options?: RawAxiosRequestConfig): AxiosPromise<Cluster> {
            return localVarFp.createCluster(requestParameters.orgName, requestParameters.body, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Create Environment Minio Cluster
         * @param {ClusterApiCreateMinioClusterRequest} requestParameters Request parameters.
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createMinioCluster(requestParameters: ClusterApiCreateMinioClusterRequest, options?: RawAxiosRequestConfig): AxiosPromise<Cluster> {
            return localVarFp.createMinioCluster(requestParameters.environmentName, requestParameters.environmentStorage, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Delete cluster
         * @param {ClusterApiDeleteClusterRequest} requestParameters Request parameters.
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteCluster(requestParameters: ClusterApiDeleteClusterRequest, options?: RawAxiosRequestConfig): AxiosPromise<object> {
            return localVarFp.deleteCluster(requestParameters.orgName, requestParameters.clusterName, requestParameters.force, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Delete Environment Storage Resource
         * @param {ClusterApiDeleteEnvironmentStorageRequest} requestParameters Request parameters.
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteEnvironmentStorage(requestParameters: ClusterApiDeleteEnvironmentStorageRequest, options?: RawAxiosRequestConfig): AxiosPromise<object> {
            return localVarFp.deleteEnvironmentStorage(requestParameters.environmentName, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Delete Environment Minio Cluster
         * @param {ClusterApiDeleteMinioClusterRequest} requestParameters Request parameters.
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteMinioCluster(requestParameters: ClusterApiDeleteMinioClusterRequest, options?: RawAxiosRequestConfig): AxiosPromise<void> {
            return localVarFp.deleteMinioCluster(requestParameters.environmentName, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Delete Environment VictoriaMetrics Cluster
         * @param {ClusterApiDeleteVictoriaMetricsClusterRequest} requestParameters Request parameters.
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteVictoriaMetricsCluster(requestParameters: ClusterApiDeleteVictoriaMetricsClusterRequest, options?: RawAxiosRequestConfig): AxiosPromise<Cluster> {
            return localVarFp.deleteVictoriaMetricsCluster(requestParameters.environmentName, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Get cluster details
         * @param {ClusterApiGetClusterRequest} requestParameters Request parameters.
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getCluster(requestParameters: ClusterApiGetClusterRequest, options?: RawAxiosRequestConfig): AxiosPromise<Cluster> {
            return localVarFp.getCluster(requestParameters.orgName, requestParameters.clusterName, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary List clusters in the Org
         * @param {ClusterApiListClusterRequest} requestParameters Request parameters.
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        listCluster(requestParameters: ClusterApiListClusterRequest, options?: RawAxiosRequestConfig): AxiosPromise<ClusterList> {
            return localVarFp.listCluster(requestParameters.orgName, requestParameters.clusterDefinition, requestParameters.environmentName, requestParameters.environmentType, requestParameters.tagKey, requestParameters.tagValue, requestParameters.tagKeys, requestParameters.tagValues, requestParameters.licenseId, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary List cluster endpoints
         * @param {ClusterApiListEndpointsRequest} requestParameters Request parameters.
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        listEndpoints(requestParameters: ClusterApiListEndpointsRequest, options?: RawAxiosRequestConfig): AxiosPromise<EndpointList> {
            return localVarFp.listEndpoints(requestParameters.orgName, requestParameters.clusterName, requestParameters.nodePortHostCount, options).then((request) => request(axios, basePath));
        },
        /**
         * Update the specified Cluster
         * @summary Update cluster specified fields
         * @param {ClusterApiPatchClusterRequest} requestParameters Request parameters.
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        patchCluster(requestParameters: ClusterApiPatchClusterRequest, options?: RawAxiosRequestConfig): AxiosPromise<Cluster> {
            return localVarFp.patchCluster(requestParameters.orgName, requestParameters.clusterName, requestParameters.body, options).then((request) => request(axios, basePath));
        },
    };
};

/**
 * ClusterApi - interface
 * @export
 * @interface ClusterApi
 */
export interface ClusterApiInterface {
    /**
     * 
     * @summary Create new cluster
     * @param {ClusterApiCreateClusterRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ClusterApiInterface
     */
    createCluster(requestParameters: ClusterApiCreateClusterRequest, options?: RawAxiosRequestConfig): AxiosPromise<Cluster>;

    /**
     * 
     * @summary Create Environment Minio Cluster
     * @param {ClusterApiCreateMinioClusterRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ClusterApiInterface
     */
    createMinioCluster(requestParameters: ClusterApiCreateMinioClusterRequest, options?: RawAxiosRequestConfig): AxiosPromise<Cluster>;

    /**
     * 
     * @summary Delete cluster
     * @param {ClusterApiDeleteClusterRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ClusterApiInterface
     */
    deleteCluster(requestParameters: ClusterApiDeleteClusterRequest, options?: RawAxiosRequestConfig): AxiosPromise<object>;

    /**
     * 
     * @summary Delete Environment Storage Resource
     * @param {ClusterApiDeleteEnvironmentStorageRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ClusterApiInterface
     */
    deleteEnvironmentStorage(requestParameters: ClusterApiDeleteEnvironmentStorageRequest, options?: RawAxiosRequestConfig): AxiosPromise<object>;

    /**
     * 
     * @summary Delete Environment Minio Cluster
     * @param {ClusterApiDeleteMinioClusterRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ClusterApiInterface
     */
    deleteMinioCluster(requestParameters: ClusterApiDeleteMinioClusterRequest, options?: RawAxiosRequestConfig): AxiosPromise<void>;

    /**
     * 
     * @summary Delete Environment VictoriaMetrics Cluster
     * @param {ClusterApiDeleteVictoriaMetricsClusterRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ClusterApiInterface
     */
    deleteVictoriaMetricsCluster(requestParameters: ClusterApiDeleteVictoriaMetricsClusterRequest, options?: RawAxiosRequestConfig): AxiosPromise<Cluster>;

    /**
     * 
     * @summary Get cluster details
     * @param {ClusterApiGetClusterRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ClusterApiInterface
     */
    getCluster(requestParameters: ClusterApiGetClusterRequest, options?: RawAxiosRequestConfig): AxiosPromise<Cluster>;

    /**
     * 
     * @summary List clusters in the Org
     * @param {ClusterApiListClusterRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ClusterApiInterface
     */
    listCluster(requestParameters: ClusterApiListClusterRequest, options?: RawAxiosRequestConfig): AxiosPromise<ClusterList>;

    /**
     * 
     * @summary List cluster endpoints
     * @param {ClusterApiListEndpointsRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ClusterApiInterface
     */
    listEndpoints(requestParameters: ClusterApiListEndpointsRequest, options?: RawAxiosRequestConfig): AxiosPromise<EndpointList>;

    /**
     * Update the specified Cluster
     * @summary Update cluster specified fields
     * @param {ClusterApiPatchClusterRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ClusterApiInterface
     */
    patchCluster(requestParameters: ClusterApiPatchClusterRequest, options?: RawAxiosRequestConfig): AxiosPromise<Cluster>;

}

/**
 * Request parameters for createCluster operation in ClusterApi.
 * @export
 * @interface ClusterApiCreateClusterRequest
 */
export interface ClusterApiCreateClusterRequest {
    /**
     * name of the Org
     * @type {string}
     * @memberof ClusterApiCreateCluster
     */
    readonly orgName: string

    /**
     * 
     * @type {Cluster}
     * @memberof ClusterApiCreateCluster
     */
    readonly body: Cluster
}

/**
 * Request parameters for createMinioCluster operation in ClusterApi.
 * @export
 * @interface ClusterApiCreateMinioClusterRequest
 */
export interface ClusterApiCreateMinioClusterRequest {
    /**
     * name of the environment
     * @type {string}
     * @memberof ClusterApiCreateMinioCluster
     */
    readonly environmentName: string

    /**
     * 
     * @type {EnvironmentStorage}
     * @memberof ClusterApiCreateMinioCluster
     */
    readonly environmentStorage?: EnvironmentStorage
}

/**
 * Request parameters for deleteCluster operation in ClusterApi.
 * @export
 * @interface ClusterApiDeleteClusterRequest
 */
export interface ClusterApiDeleteClusterRequest {
    /**
     * name of the Org
     * @type {string}
     * @memberof ClusterApiDeleteCluster
     */
    readonly orgName: string

    /**
     * name of the KubeBlocks cluster
     * @type {string}
     * @memberof ClusterApiDeleteCluster
     */
    readonly clusterName: string

    /**
     * if it is true, the cluster will be deleted no matter what the termination policy is, and will not be moved to the recycle bin.
     * @type {boolean}
     * @memberof ClusterApiDeleteCluster
     */
    readonly force?: boolean
}

/**
 * Request parameters for deleteEnvironmentStorage operation in ClusterApi.
 * @export
 * @interface ClusterApiDeleteEnvironmentStorageRequest
 */
export interface ClusterApiDeleteEnvironmentStorageRequest {
    /**
     * name of the environment
     * @type {string}
     * @memberof ClusterApiDeleteEnvironmentStorage
     */
    readonly environmentName: string
}

/**
 * Request parameters for deleteMinioCluster operation in ClusterApi.
 * @export
 * @interface ClusterApiDeleteMinioClusterRequest
 */
export interface ClusterApiDeleteMinioClusterRequest {
    /**
     * name of the environment
     * @type {string}
     * @memberof ClusterApiDeleteMinioCluster
     */
    readonly environmentName: string
}

/**
 * Request parameters for deleteVictoriaMetricsCluster operation in ClusterApi.
 * @export
 * @interface ClusterApiDeleteVictoriaMetricsClusterRequest
 */
export interface ClusterApiDeleteVictoriaMetricsClusterRequest {
    /**
     * name of the environment
     * @type {string}
     * @memberof ClusterApiDeleteVictoriaMetricsCluster
     */
    readonly environmentName: string
}

/**
 * Request parameters for getCluster operation in ClusterApi.
 * @export
 * @interface ClusterApiGetClusterRequest
 */
export interface ClusterApiGetClusterRequest {
    /**
     * name of the Org
     * @type {string}
     * @memberof ClusterApiGetCluster
     */
    readonly orgName: string

    /**
     * name of the KubeBlocks cluster
     * @type {string}
     * @memberof ClusterApiGetCluster
     */
    readonly clusterName: string
}

/**
 * Request parameters for listCluster operation in ClusterApi.
 * @export
 * @interface ClusterApiListClusterRequest
 */
export interface ClusterApiListClusterRequest {
    /**
     * name of the Org
     * @type {string}
     * @memberof ClusterApiListCluster
     */
    readonly orgName: string

    /**
     * The clusterDefinition in the List request
     * @type {string}
     * @memberof ClusterApiListCluster
     */
    readonly clusterDefinition?: string

    /**
     * Environment Type
     * @type {string}
     * @memberof ClusterApiListCluster
     */
    readonly environmentName?: string

    /**
     * Environment Type
     * @type {EnvironmentType}
     * @memberof ClusterApiListCluster
     */
    readonly environmentType?: EnvironmentType

    /**
     * Tag key
     * @type {string}
     * @memberof ClusterApiListCluster
     */
    readonly tagKey?: string

    /**
     * Tag value
     * @type {string}
     * @memberof ClusterApiListCluster
     */
    readonly tagValue?: string

    /**
     * A list of tags\&#39; keys
     * @type {Array<string>}
     * @memberof ClusterApiListCluster
     */
    readonly tagKeys?: Array<string>

    /**
     * A list of tags\&#39; values corresponding to the tagKeys
     * @type {Array<string>}
     * @memberof ClusterApiListCluster
     */
    readonly tagValues?: Array<string>

    /**
     * license id
     * @type {number}
     * @memberof ClusterApiListCluster
     */
    readonly licenseId?: number
}

/**
 * Request parameters for listEndpoints operation in ClusterApi.
 * @export
 * @interface ClusterApiListEndpointsRequest
 */
export interface ClusterApiListEndpointsRequest {
    /**
     * name of the Org
     * @type {string}
     * @memberof ClusterApiListEndpoints
     */
    readonly orgName: string

    /**
     * name of the KubeBlocks cluster
     * @type {string}
     * @memberof ClusterApiListEndpoints
     */
    readonly clusterName: string

    /**
     * count of the NodePort host
     * @type {number}
     * @memberof ClusterApiListEndpoints
     */
    readonly nodePortHostCount?: number
}

/**
 * Request parameters for patchCluster operation in ClusterApi.
 * @export
 * @interface ClusterApiPatchClusterRequest
 */
export interface ClusterApiPatchClusterRequest {
    /**
     * name of the Org
     * @type {string}
     * @memberof ClusterApiPatchCluster
     */
    readonly orgName: string

    /**
     * name of the KubeBlocks cluster
     * @type {string}
     * @memberof ClusterApiPatchCluster
     */
    readonly clusterName: string

    /**
     * 
     * @type {ClusterUpdate}
     * @memberof ClusterApiPatchCluster
     */
    readonly body: ClusterUpdate
}

/**
 * ClusterApi - object-oriented interface
 * @export
 * @class ClusterApi
 * @extends {BaseAPI}
 */
export class ClusterApi extends BaseAPI implements ClusterApiInterface {
    /**
     * 
     * @summary Create new cluster
     * @param {ClusterApiCreateClusterRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ClusterApi
     */
    public createCluster(requestParameters: ClusterApiCreateClusterRequest, options?: RawAxiosRequestConfig) {
        return ClusterApiFp(this.configuration).createCluster(requestParameters.orgName, requestParameters.body, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Create Environment Minio Cluster
     * @param {ClusterApiCreateMinioClusterRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ClusterApi
     */
    public createMinioCluster(requestParameters: ClusterApiCreateMinioClusterRequest, options?: RawAxiosRequestConfig) {
        return ClusterApiFp(this.configuration).createMinioCluster(requestParameters.environmentName, requestParameters.environmentStorage, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Delete cluster
     * @param {ClusterApiDeleteClusterRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ClusterApi
     */
    public deleteCluster(requestParameters: ClusterApiDeleteClusterRequest, options?: RawAxiosRequestConfig) {
        return ClusterApiFp(this.configuration).deleteCluster(requestParameters.orgName, requestParameters.clusterName, requestParameters.force, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Delete Environment Storage Resource
     * @param {ClusterApiDeleteEnvironmentStorageRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ClusterApi
     */
    public deleteEnvironmentStorage(requestParameters: ClusterApiDeleteEnvironmentStorageRequest, options?: RawAxiosRequestConfig) {
        return ClusterApiFp(this.configuration).deleteEnvironmentStorage(requestParameters.environmentName, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Delete Environment Minio Cluster
     * @param {ClusterApiDeleteMinioClusterRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ClusterApi
     */
    public deleteMinioCluster(requestParameters: ClusterApiDeleteMinioClusterRequest, options?: RawAxiosRequestConfig) {
        return ClusterApiFp(this.configuration).deleteMinioCluster(requestParameters.environmentName, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Delete Environment VictoriaMetrics Cluster
     * @param {ClusterApiDeleteVictoriaMetricsClusterRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ClusterApi
     */
    public deleteVictoriaMetricsCluster(requestParameters: ClusterApiDeleteVictoriaMetricsClusterRequest, options?: RawAxiosRequestConfig) {
        return ClusterApiFp(this.configuration).deleteVictoriaMetricsCluster(requestParameters.environmentName, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Get cluster details
     * @param {ClusterApiGetClusterRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ClusterApi
     */
    public getCluster(requestParameters: ClusterApiGetClusterRequest, options?: RawAxiosRequestConfig) {
        return ClusterApiFp(this.configuration).getCluster(requestParameters.orgName, requestParameters.clusterName, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary List clusters in the Org
     * @param {ClusterApiListClusterRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ClusterApi
     */
    public listCluster(requestParameters: ClusterApiListClusterRequest, options?: RawAxiosRequestConfig) {
        return ClusterApiFp(this.configuration).listCluster(requestParameters.orgName, requestParameters.clusterDefinition, requestParameters.environmentName, requestParameters.environmentType, requestParameters.tagKey, requestParameters.tagValue, requestParameters.tagKeys, requestParameters.tagValues, requestParameters.licenseId, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary List cluster endpoints
     * @param {ClusterApiListEndpointsRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ClusterApi
     */
    public listEndpoints(requestParameters: ClusterApiListEndpointsRequest, options?: RawAxiosRequestConfig) {
        return ClusterApiFp(this.configuration).listEndpoints(requestParameters.orgName, requestParameters.clusterName, requestParameters.nodePortHostCount, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Update the specified Cluster
     * @summary Update cluster specified fields
     * @param {ClusterApiPatchClusterRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ClusterApi
     */
    public patchCluster(requestParameters: ClusterApiPatchClusterRequest, options?: RawAxiosRequestConfig) {
        return ClusterApiFp(this.configuration).patchCluster(requestParameters.orgName, requestParameters.clusterName, requestParameters.body, options).then((request) => request(this.axios, this.basePath));
    }
}

