/**
 * 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 { ClusterBackup } from './cluster-backup';
import type { ClusterLicense } from './cluster-license';
import type { ClusterMaintainceWindow } from './cluster-maintaince-window';
import type { ClusterObjectStorageConfig } from './cluster-object-storage-config';
import type { ClusterTerminationPolicy } from './cluster-termination-policy';
import type { ClusterType } from './cluster-type';
import type { ComponentItemCreate } from './component-item-create';
import type { InitOptionItem } from './init-option-item';
import type { NetworkMode } from './network-mode';
import type { ParamTplsItem } from './param-tpls-item';
import type { SchedulingPolicyType } from './scheduling-policy-type';
import type { ServiceRef } from './service-ref';
/**
 * KubeBlocks cluster information
 * @export
 * @interface ClusterCreate
 */
export interface ClusterCreate {
    /**
     * When two clusters have a relationship, parentId records the parent cluster id.Can be empty when there is no relationship
     * @type {string}
     * @memberof ClusterCreate
     */
    'parentId'?: string | null;
    /**
     *
     * @type {ClusterType}
     * @memberof ClusterCreate
     */
    'clusterType'?: ClusterType | null;
    /**
     * Org Name
     * @type {string}
     * @memberof ClusterCreate
     */
    'orgName'?: string;
    /**
     * Environment Name
     * @type {string}
     * @memberof ClusterCreate
     */
    'environmentName': string;
    /**
     * Name of project, it is the alias of environment namespace
     * @type {string}
     * @memberof ClusterCreate
     */
    'project'?: string;
    /**
     * Name of cluster. Name must be unique within an Org
     * @type {string}
     * @memberof ClusterCreate
     */
    'name': string;
    /**
     * Cluster Application Engine
     * @type {string}
     * @memberof ClusterCreate
     */
    'engine': string;
    /**
     *
     * @type {ClusterLicense}
     * @memberof ClusterCreate
     */
    'license'?: ClusterLicense;
    /**
     * Items is the list of parameter template in the list
     * @type {Array<ParamTplsItem>}
     * @memberof ClusterCreate
     */
    'paramTpls'?: Array<ParamTplsItem>;
    /**
     * Cluster Application Version
     * @type {string}
     * @memberof ClusterCreate
     */
    'version'?: string;
    /**
     *
     * @type {ClusterTerminationPolicy}
     * @memberof ClusterCreate
     */
    'terminationPolicy'?: ClusterTerminationPolicy;
    /**
     * Cluster topology mode
     * @type {string}
     * @memberof ClusterCreate
     */
    'mode'?: string;
    /**
     * Components is the list of components
     * @type {Array<ComponentItemCreate>}
     * @memberof ClusterCreate
     */
    'components'?: Array<ComponentItemCreate>;
    /**
     * Extra configuration for cluster. This will be added to helm values to render the cluster chart.
     * @type {{ [key: string]: object; }}
     * @memberof ClusterCreate
     */
    'extra'?: {
        [key: string]: object;
    };
    /**
     * InitOptions is the list of init option
     * @type {Array<InitOptionItem>}
     * @memberof ClusterCreate
     */
    'initOptions'?: Array<InitOptionItem>;
    /**
     * Use single availability zones
     * @type {boolean}
     * @memberof ClusterCreate
     */
    'singleZone'?: boolean;
    /**
     * Availability Zones
     * @type {Array<string>}
     * @memberof ClusterCreate
     */
    'availabilityZones'?: Array<string>;
    /**
     *
     * @type {ClusterBackup}
     * @memberof ClusterCreate
     */
    'backup'?: ClusterBackup;
    /**
     * Specify a NodeGroup for the cluster
     * @type {string}
     * @memberof ClusterCreate
     */
    'nodeGroup'?: string | null;
    /**
     * Display name of cluster.
     * @type {string}
     * @memberof ClusterCreate
     */
    'displayName'?: string;
    /**
     * if cluster is static cluster
     * @type {boolean}
     * @memberof ClusterCreate
     */
    'static'?: boolean;
    /**
     *
     * @type {NetworkMode}
     * @memberof ClusterCreate
     */
    'networkMode'?: NetworkMode;
    /**
     *
     * @type {Array<ServiceRef>}
     * @memberof ClusterCreate
     */
    'serviceRefs'?: Array<ServiceRef>;
    /**
     *
     * @type {ClusterObjectStorageConfig}
     * @memberof ClusterCreate
     */
    'objectStorageConfig'?: ClusterObjectStorageConfig;
    /**
     *
     * @type {ClusterMaintainceWindow}
     * @memberof ClusterCreate
     */
    'maintainceWindow'?: ClusterMaintainceWindow;
    /**
     *
     * @type {SchedulingPolicyType}
     * @memberof ClusterCreate
     */
    'schedulingPolicy'?: SchedulingPolicyType;
}
//# sourceMappingURL=cluster-create.d.ts.map