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


// May contain unused imports in some cases
// @ts-ignore
import type { AutohealingConfig } from './autohealing-config';
// 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 { Dns } from './dns';
// 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 { EnvironmentDeletePolicy } from './environment-delete-policy';
// 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';
// May contain unused imports in some cases
// @ts-ignore
import type { ProvisionConfig } from './provision-config';
// May contain unused imports in some cases
// @ts-ignore
import type { SchedulingConfig } from './scheduling-config';

/**
 * Environment info
 * @export
 * @interface Environment
 */
export interface Environment {
    /**
     * Cloud Provider
     * @type {string}
     * @memberof Environment
     */
    'provider': string;
    /**
     * Cloud Region
     * @type {string}
     * @memberof Environment
     */
    'region': string;
    /**
     * Availability Zones
     * @type {Array<string>}
     * @memberof Environment
     */
    'availabilityZones': Array<string>;
    /**
     * 
     * @type {SchedulingConfig}
     * @memberof Environment
     */
    'schedulingConfig'?: SchedulingConfig;
    /**
     * 
     * @type {NetworkConfig}
     * @memberof Environment
     */
    'networkConfig'?: NetworkConfig;
    /**
     * The description of the organization
     * @type {string}
     * @memberof Environment
     */
    'description'?: string;
    /**
     * The display name of the context
     * @type {string}
     * @memberof Environment
     */
    'displayName': string;
    /**
     * 
     * @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;
    /**
     * Organizations that have access for this environment
     * @type {Array<string>}
     * @memberof Environment
     */
    'organizations': Array<string>;
    /**
     * The native VM cluster is deployed in environment or not.
     * @type {boolean}
     * @memberof Environment
     */
    'metricsMonitorEnabled'?: boolean;
    /**
     * 
     * @type {EnvironmentState}
     * @memberof Environment
     */
    'state': EnvironmentState;
    /**
     * 
     * @type {EnvironmentType}
     * @memberof Environment
     */
    'type': EnvironmentType;
    /**
     * 
     * @type {ProvisionConfig}
     * @memberof Environment
     */
    'provisionConfig': ProvisionConfig;
    /**
     * 
     * @type {AutohealingConfig}
     * @memberof Environment
     */
    'autohealingConfig'?: AutohealingConfig;
    /**
     * 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;
    /**
     * 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;
    /**
     * Extra info for environment
     * @type {string}
     * @memberof Environment
     */
    'extraInfo'?: string;
    /**
     * 
     * @type {EnvironmentDeletePolicy}
     * @memberof Environment
     */
    'deletePolicy'?: EnvironmentDeletePolicy;
    /**
     * 
     * @type {ClusterValidationPolicy}
     * @memberof Environment
     */
    'clusterValidationPolicy'?: ClusterValidationPolicy;
    /**
     * 
     * @type {EnvironmentArchitecture}
     * @memberof Environment
     */
    'architecture'?: EnvironmentArchitecture;
    /**
     * 
     * @type {Dns}
     * @memberof Environment
     */
    'dns'?: Dns;
    /**
     * whether to enable calculate the cluster SLA for the environment
     * @type {boolean}
     * @memberof Environment
     */
    'slaEnabled'?: boolean;
}



