/* tslint:disable */
/* eslint-disable */
/**
 * 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.
 */


// May contain unused imports in some cases
// @ts-ignore
import type { ClusterBackup } from './cluster-backup';
// May contain unused imports in some cases
// @ts-ignore
import type { ComponentItem } from './component-item';

/**
 * KubeBlocks cluster(in recycle bin) information
 * @export
 * @interface RecycleBinCluster
 */
export interface RecycleBinCluster {
    /**
     * Cluster Recycle Bin ID
     * @type {string}
     * @memberof RecycleBinCluster
     */
    'id'?: string;
    /**
     * Cluster ID
     * @type {string}
     * @memberof RecycleBinCluster
     */
    'clusterId'?: string;
    /**
     * Org Name
     * @type {string}
     * @memberof RecycleBinCluster
     */
    'orgName'?: string;
    /**
     * Cloud Provider
     * @type {string}
     * @memberof RecycleBinCluster
     */
    'cloudProvider'?: string;
    /**
     * ID of the environment
     * @type {string}
     * @memberof RecycleBinCluster
     */
    'environmentId'?: string;
    /**
     * Environment Name
     * @type {string}
     * @memberof RecycleBinCluster
     */
    'environmentName': string;
    /**
     * Environment Types
     * @type {string}
     * @memberof RecycleBinCluster
     */
    'environmentType'?: string;
    /**
     * Cloud Region
     * @type {string}
     * @memberof RecycleBinCluster
     */
    'cloudRegion'?: string;
    /**
     * Environment Namespace
     * @type {string}
     * @memberof RecycleBinCluster
     */
    'namespace'?: string;
    /**
     * Name of cluster. Name must be unique within an Org
     * @type {string}
     * @memberof RecycleBinCluster
     */
    'name': string;
    /**
     * Hash of cluster. Name must be unique within an Org
     * @type {string}
     * @memberof RecycleBinCluster
     */
    'hash'?: string;
    /**
     * Cluster Application Engine
     * @type {string}
     * @memberof RecycleBinCluster
     */
    'engine': string;
    /**
     * Values
     * @type {{ [key: string]: any; }}
     * @memberof RecycleBinCluster
     */
    'values'?: { [key: string]: any; };
    /**
     * Cluster Application Version
     * @type {string}
     * @memberof RecycleBinCluster
     */
    'version'?: string;
    /**
     * The number of replicas, for standalone mode, the replicas is 1, for raftGroup mode, the default replicas is 3.
     * @type {number}
     * @memberof RecycleBinCluster
     */
    'replicas'?: number;
    /**
     * CPU cores.
     * @type {number}
     * @memberof RecycleBinCluster
     */
    'cpu'?: number;
    /**
     * Memory, the unit is Gi.
     * @type {number}
     * @memberof RecycleBinCluster
     */
    'memory'?: number;
    /**
     * Storage size, the unit is Gi.
     * @type {number}
     * @memberof RecycleBinCluster
     */
    'storage'?: number;
    /**
     * status represents the actual status of the cluster in k8s, it is different from the state of the cluster in recycle bin, which means whether the cluster has been deleted by a stop opsRequest.
     * @type {string}
     * @memberof RecycleBinCluster
     */
    'status'?: string;
    /**
     * state represents whether the cluster has been deleted by a stop opsRequest, and therefore, whether it is in the recycle bin. It is differnt from the Status of the cluster undeleted.
     * @type {string}
     * @memberof RecycleBinCluster
     */
    'state'?: string;
    /**
     * Cluster topology mode
     * @type {string}
     * @memberof RecycleBinCluster
     */
    'mode'?: string;
    /**
     * Components is the list of components
     * @type {Array<ComponentItem>}
     * @memberof RecycleBinCluster
     */
    'components'?: Array<ComponentItem>;
    /**
     * Use single availability zones
     * @type {boolean}
     * @memberof RecycleBinCluster
     */
    'singleZone'?: boolean;
    /**
     * Availability Zones
     * @type {Array<string>}
     * @memberof RecycleBinCluster
     */
    'availabilityZones'?: Array<string>;
    /**
     * 
     * @type {ClusterBackup}
     * @memberof RecycleBinCluster
     */
    'backup'?: ClusterBackup;
    /**
     * StoppedAt is a timestamp representing the server time when this object was stopped and moved to the recycle bin. 
     * @type {string}
     * @memberof RecycleBinCluster
     */
    'stoppedAt'?: string;
    /**
     * CreatedAt is a timestamp representing the server time when this object was created.
     * @type {string}
     * @memberof RecycleBinCluster
     */
    'createdAt'?: string;
    /**
     * ExpiredAt is a timestamp representing the server time when this object will be expired, and deleted automatically.
     * @type {string}
     * @memberof RecycleBinCluster
     */
    'expiredAt'?: string;
}

