/* 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 { ComponentOpsOptionBackupMethod } from './component-ops-option-backup-method';
// May contain unused imports in some cases
// @ts-ignore
import type { ComponentOpsOptionDependentCustomOps } from './component-ops-option-dependent-custom-ops';
// May contain unused imports in some cases
// @ts-ignore
import type { ComponentOpsOptionRestoreEnvInner } from './component-ops-option-restore-env-inner';

/**
 * 
 * @export
 * @interface ComponentOpsOption
 */
export interface ComponentOpsOption {
    /**
     * List of modes that this component supports. if not set, support all modes.
     * @type {Array<string>}
     * @memberof ComponentOpsOption
     */
    'modes'?: Array<string>;
    /**
     * 
     * @type {string}
     * @memberof ComponentOpsOption
     */
    'component': string;
    /**
     * 
     * @type {boolean}
     * @memberof ComponentOpsOption
     */
    'disableHA'?: boolean;
    /**
     * parameter for rebuild instance ops
     * @type {boolean}
     * @memberof ComponentOpsOption
     */
    'inPlace'?: boolean;
    /**
     * indicate whether backup is required when Inplace is true
     * @type {boolean}
     * @memberof ComponentOpsOption
     */
    'needBackupWhenInPlace'?: boolean;
    /**
     * indicate whether backup is required for this ops
     * @type {boolean}
     * @memberof ComponentOpsOption
     */
    'backupRequired'?: boolean;
    /**
     * 
     * @type {ComponentOpsOptionBackupMethod}
     * @memberof ComponentOpsOption
     */
    'backupMethod'?: ComponentOpsOptionBackupMethod;
    /**
     * 
     * @type {Array<ComponentOpsOptionRestoreEnvInner>}
     * @memberof ComponentOpsOption
     */
    'restoreEnv'?: Array<ComponentOpsOptionRestoreEnvInner> | null;
    /**
     * indicate whether the component supports online instance to offlines
     * @type {boolean}
     * @memberof ComponentOpsOption
     */
    'disableOfflineInstance'?: boolean | null;
    /**
     * list of instance roles that are not allowed to be taken offline
     * @type {Array<string>}
     * @memberof ComponentOpsOption
     */
    'disableOfflineInstanceRoles'?: Array<string>;
    /**
     * indicate whether rollback is supported for this ops
     * @type {boolean}
     * @memberof ComponentOpsOption
     */
    'rollbackSupported'?: boolean;
    /**
     * 
     * @type {ComponentOpsOptionDependentCustomOps}
     * @memberof ComponentOpsOption
     */
    'dependentCustomOps'?: ComponentOpsOptionDependentCustomOps;
}

