/* 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 { AccountOption } from './account-option';
// May contain unused imports in some cases
// @ts-ignore
import type { BackupOption } from './backup-option';
// May contain unused imports in some cases
// @ts-ignore
import type { BenchOption } from './bench-option';
// May contain unused imports in some cases
// @ts-ignore
import type { BlueGreenDeploymentEngineOption } from './blue-green-deployment-engine-option';
// May contain unused imports in some cases
// @ts-ignore
import type { CdcOption } from './cdc-option';
// May contain unused imports in some cases
// @ts-ignore
import type { ComponentOpsOption } from './component-ops-option';
// May contain unused imports in some cases
// @ts-ignore
import type { ComponentOption } from './component-option';
// May contain unused imports in some cases
// @ts-ignore
import type { DashboardOption } from './dashboard-option';
// May contain unused imports in some cases
// @ts-ignore
import type { DataReplicationOption } from './data-replication-option';
// May contain unused imports in some cases
// @ts-ignore
import type { DatabaseOption } from './database-option';
// May contain unused imports in some cases
// @ts-ignore
import type { DisasterRecoveryOption } from './disaster-recovery-option';
// May contain unused imports in some cases
// @ts-ignore
import type { DmsOption } from './dms-option';
// May contain unused imports in some cases
// @ts-ignore
import type { EndpointOption } from './endpoint-option';
// May contain unused imports in some cases
// @ts-ignore
import type { EngineOptionLicense } from './engine-option-license';
// May contain unused imports in some cases
// @ts-ignore
import type { EngineOptionStatus } from './engine-option-status';
// May contain unused imports in some cases
// @ts-ignore
import type { EngineTlsOption } from './engine-tls-option';
// May contain unused imports in some cases
// @ts-ignore
import type { ImportOption } from './import-option';
// May contain unused imports in some cases
// @ts-ignore
import type { LocalizedDescription } from './localized-description';
// May contain unused imports in some cases
// @ts-ignore
import type { LogOption } from './log-option';
// May contain unused imports in some cases
// @ts-ignore
import type { MetricsOption } from './metrics-option';
// May contain unused imports in some cases
// @ts-ignore
import type { ModeOption } from './mode-option';
// May contain unused imports in some cases
// @ts-ignore
import type { NetworkModeOptionInner } from './network-mode-option-inner';
// May contain unused imports in some cases
// @ts-ignore
import type { ParameterOption } from './parameter-option';
// May contain unused imports in some cases
// @ts-ignore
import type { TdeOption } from './tde-option';

/**
 * 
 * @export
 * @interface EngineOption
 */
export interface EngineOption {
    /**
     * 
     * @type {string}
     * @memberof EngineOption
     */
    'engineName': string;
    /**
     * engine maturity level
     * @type {string}
     * @memberof EngineOption
     */
    'maturityLevel'?: string;
    /**
     * 
     * @type {string}
     * @memberof EngineOption
     */
    'title': string;
    /**
     * 
     * @type {EngineOptionStatus}
     * @memberof EngineOption
     */
    'status'?: EngineOptionStatus;
    /**
     * 
     * @type {LocalizedDescription}
     * @memberof EngineOption
     */
    'description': LocalizedDescription;
    /**
     * 
     * @type {Array<string>}
     * @memberof EngineOption
     */
    'versions'?: Array<string>;
    /**
     * 
     * @type {Array<ComponentOption>}
     * @memberof EngineOption
     */
    'components': Array<ComponentOption>;
    /**
     * 
     * @type {Array<ModeOption>}
     * @memberof EngineOption
     */
    'modes': Array<ModeOption>;
    /**
     * The default mode name to be selected when creating a cluster. This field is used by the frontend only. The value should match one of the mode names defined in the modes array. 
     * @type {string}
     * @memberof EngineOption
     */
    'defaultMode'?: string | null;
    /**
     * 
     * @type {AccountOption}
     * @memberof EngineOption
     */
    'account'?: AccountOption;
    /**
     * 
     * @type {DatabaseOption}
     * @memberof EngineOption
     */
    'database'?: DatabaseOption;
    /**
     * 
     * @type {DmsOption}
     * @memberof EngineOption
     */
    'dms': DmsOption;
    /**
     * 
     * @type {BackupOption}
     * @memberof EngineOption
     */
    'backup'?: BackupOption;
    /**
     * 
     * @type {BenchOption}
     * @memberof EngineOption
     */
    'bench'?: BenchOption;
    /**
     * 
     * @type {Array<EndpointOption>}
     * @memberof EngineOption
     */
    'endpoints': Array<EndpointOption>;
    /**
     * 
     * @type {Array<NetworkModeOptionInner>}
     * @memberof EngineOption
     */
    'networkModes'?: Array<NetworkModeOptionInner>;
    /**
     * 
     * @type {Array<ComponentOpsOption>}
     * @memberof EngineOption
     */
    'promote': Array<ComponentOpsOption>;
    /**
     * 
     * @type {Array<ComponentOpsOption>}
     * @memberof EngineOption
     */
    'stop': Array<ComponentOpsOption>;
    /**
     * 
     * @type {Array<ComponentOpsOption>}
     * @memberof EngineOption
     */
    'start': Array<ComponentOpsOption>;
    /**
     * 
     * @type {Array<ComponentOpsOption>}
     * @memberof EngineOption
     */
    'restart': Array<ComponentOpsOption>;
    /**
     * 
     * @type {Array<ComponentOpsOption>}
     * @memberof EngineOption
     */
    'hscale': Array<ComponentOpsOption>;
    /**
     * 
     * @type {Array<ComponentOpsOption>}
     * @memberof EngineOption
     */
    'vscale': Array<ComponentOpsOption>;
    /**
     * 
     * @type {EngineOptionLicense}
     * @memberof EngineOption
     */
    'license'?: EngineOptionLicense;
    /**
     * 
     * @type {Array<ComponentOpsOption>}
     * @memberof EngineOption
     */
    'storageExpansion'?: Array<ComponentOpsOption>;
    /**
     * 
     * @type {Array<ComponentOpsOption>}
     * @memberof EngineOption
     */
    'rebuildInstance'?: Array<ComponentOpsOption>;
    /**
     * 
     * @type {Array<ComponentOpsOption>}
     * @memberof EngineOption
     */
    'upgrade'?: Array<ComponentOpsOption>;
    /**
     * 
     * @type {MetricsOption}
     * @memberof EngineOption
     */
    'metrics'?: MetricsOption;
    /**
     * 
     * @type {Array<DashboardOption>}
     * @memberof EngineOption
     */
    'dashboards': Array<DashboardOption>;
    /**
     * 
     * @type {Array<LogOption>}
     * @memberof EngineOption
     */
    'logs': Array<LogOption>;
    /**
     * 
     * @type {Array<ParameterOption>}
     * @memberof EngineOption
     */
    'parameters': Array<ParameterOption>;
    /**
     * 
     * @type {DisasterRecoveryOption}
     * @memberof EngineOption
     */
    'disasterRecovery'?: DisasterRecoveryOption;
    /**
     * 
     * @type {Array<CdcOption>}
     * @memberof EngineOption
     */
    'cdc'?: Array<CdcOption>;
    /**
     * 
     * @type {DataReplicationOption}
     * @memberof EngineOption
     */
    'dataReplication'?: DataReplicationOption;
    /**
     * 
     * @type {ImportOption}
     * @memberof EngineOption
     */
    'import'?: ImportOption;
    /**
     * List of CPU architectures supported by this engine. If not set, all architectures are supported. 
     * @type {Array<string>}
     * @memberof EngineOption
     */
    'architectures'?: Array<string> | null;
    /**
     * 
     * @type {BlueGreenDeploymentEngineOption}
     * @memberof EngineOption
     */
    'blueGreenDeployment'?: BlueGreenDeploymentEngineOption;
    /**
     * 
     * @type {EngineTlsOption}
     * @memberof EngineOption
     */
    'tls'?: EngineTlsOption;
    /**
     * Transparent data encryption configuration.
     * @type {Array<TdeOption>}
     * @memberof EngineOption
     */
    'tde'?: Array<TdeOption>;
}



