/* 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 { TaskSchedule } from './task-schedule';

/**
 * OpsHScale is the payload to horizontally scale a KubeBlocks cluster. It requires specifying either the number of replicas or the number of shards.
 * @export
 * @interface OpsHScale
 */
export interface OpsHScale {
    /**
     * component type
     * @type {string}
     * @memberof OpsHScale
     */
    'component': string;
    /**
     * name of the backup to restore from
     * @type {string}
     * @memberof OpsHScale
     */
    'backupName'?: string | null;
    /**
     * number of replicas
     * @type {number}
     * @memberof OpsHScale
     */
    'replicas'?: number | null;
    /**
     * List of online instance names to be switched to offline during scaling in.
     * @type {Array<string>}
     * @memberof OpsHScale
     */
    'onlineInstancesToOffline'?: Array<string> | null;
    /**
     * List of offline instance names to be switched to online during scaling out.
     * @type {Array<string>}
     * @memberof OpsHScale
     */
    'OfflineInstancesToOnline'?: Array<string> | null;
    /**
     * number of shards, mutually exclusive with replicas.
     * @type {number}
     * @memberof OpsHScale
     */
    'shards'?: number | null;
    /**
     * Specifies the maximum time in seconds that the OpsRequest will wait for its pre-conditions to be met before it aborts the operation
     * @type {number}
     * @memberof OpsHScale
     */
    'preConditionDeadlineSeconds'?: number | null;
    /**
     * force the scaling operation without pre-check
     * @type {boolean}
     * @memberof OpsHScale
     */
    'force'?: boolean;
    /**
     * 
     * @type {TaskSchedule}
     * @memberof OpsHScale
     */
    'schedule'?: TaskSchedule;
}

