/* 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 { ClusterValidationPolicy } from './cluster-validation-policy';
// May contain unused imports in some cases
// @ts-ignore
import type { EnvironmentArchitecture } from './environment-architecture';
// May contain unused imports in some cases
// @ts-ignore
import type { EnvironmentState } from './environment-state';
// May contain unused imports in some cases
// @ts-ignore
import type { EnvironmentType } from './environment-type';
// May contain unused imports in some cases
// @ts-ignore
import type { NetworkConfig } from './network-config';

/**
 * Environment info
 * @export
 * @interface Environment
 */
export interface Environment {
    /**
     * Provider
     * @type {string}
     * @memberof Environment
     */
    'provider': string;
    /**
     * Region
     * @type {string}
     * @memberof Environment
     */
    'region': string;
    /**
     * Availability Zones
     * @type {Array<string>}
     * @memberof Environment
     */
    'availabilityZones': Array<string>;
    /**
     * 
     * @type {NetworkConfig}
     * @memberof Environment
     */
    'networkConfig'?: NetworkConfig;
    /**
     * CreatedAt is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC. Populated by the system. Read-only. Null for lists
     * @type {string}
     * @memberof Environment
     */
    'createdAt': string;
    /**
     * The description of the organization
     * @type {string}
     * @memberof Environment
     */
    'description'?: string;
    /**
     * The display name of the context
     * @type {string}
     * @memberof Environment
     */
    'displayName'?: string;
    /**
     * environment id
     * @type {string}
     * @memberof Environment
     */
    'id': string;
    /**
     * The full, unique name of this Object in the format contexts/{name}, set during creation. name must be a valid RFC 1123 compliant DNS label
     * @type {string}
     * @memberof Environment
     */
    'name': string;
    /**
     * Organization Name
     * @type {string}
     * @memberof Environment
     */
    'orgName': string;
    /**
     * 
     * @type {EnvironmentState}
     * @memberof Environment
     */
    'state': EnvironmentState;
    /**
     * 
     * @type {EnvironmentType}
     * @memberof Environment
     */
    'type': EnvironmentType;
    /**
     * UpdatedAt is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC. Populated by the system. Read-only. Null for lists
     * @type {string}
     * @memberof Environment
     */
    'updatedAt': string;
    /**
     * Image registry URL used by the environment. Must match image_registries.url, not image_registries.name.
     * @type {string}
     * @memberof Environment
     */
    'imageRegistry'?: string;
    /**
     * extra info for environment
     * @type {string}
     * @memberof Environment
     */
    'extraInfo'?: string;
    /**
     * KubeBlocks version of the environment
     * @type {string}
     * @memberof Environment
     */
    'kbVersion'?: string;
    /**
     * namespace info for environment
     * @type {Array<string>}
     * @memberof Environment
     */
    'namespaces'?: Array<string>;
    /**
     * the default storageClass for the environment
     * @type {string}
     * @memberof Environment
     */
    'defaultStorageClass': string;
    /**
     * 
     * @type {ClusterValidationPolicy}
     * @memberof Environment
     */
    'clusterValidationPolicy'?: ClusterValidationPolicy;
    /**
     * 
     * @type {EnvironmentArchitecture}
     * @memberof Environment
     */
    'architecture'?: EnvironmentArchitecture;
}



