/**
 * 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.
 */
import type { BackupParametersInner } from './backup-parameters-inner';
import type { BackupStatus } from './backup-status';
import type { BackupType } from './backup-type';
import type { SelectiveObjectTreeNode } from './selective-object-tree-node';
/**
 * backup is the payload for KubeBlocks cluster backup
 * @export
 * @interface Backup
 */
export interface Backup {
    /**
     * autoBackup or not
     * @type {boolean}
     * @memberof Backup
     */
    'autoBackup': boolean;
    /**
     * Backup Method.
     * @type {string}
     * @memberof Backup
     */
    'backupMethod': string;
    /**
     * Which backupPolicy is applied to perform this backup
     * @type {string}
     * @memberof Backup
     */
    'backupPolicyName': string;
    /**
     * backupRepo is the name of backupRepo and it is used to store the backup data
     * @type {string}
     * @memberof Backup
     */
    'backupRepo'?: string;
    /**
     *
     * @type {BackupType}
     * @memberof Backup
     */
    'backupType': BackupType;
    /**
     * Date/time when the backup finished being processed.
     * @type {string}
     * @memberof Backup
     */
    'completionTimestamp'?: string | null;
    /**
     * Date/time when the backup was created.
     * @type {string}
     * @memberof Backup
     */
    'creationTimestamp': string;
    /**
     * The duration time of backup execution. When converted to a string, the form is \"1h2m0.5s\".
     * @type {string}
     * @memberof Backup
     */
    'duration'?: string;
    /**
     * name of the backup
     * @type {string}
     * @memberof Backup
     */
    'name': string;
    /**
     * orgName records the organization name for this backup.
     * @type {string}
     * @memberof Backup
     */
    'orgName': string;
    /**
     * snapshotVolumes specifies whether to take snapshots of persistent volumes to back up
     * @type {boolean}
     * @memberof Backup
     */
    'snapshotVolumes': boolean;
    /**
     * sourceCluster records the source cluster information for this backup.
     * @type {string}
     * @memberof Backup
     */
    'sourceCluster': string;
    /**
     * Date/time when the backup started being processed.
     * @type {string}
     * @memberof Backup
     */
    'startTimestamp'?: string | null;
    /**
     *
     * @type {BackupStatus}
     * @memberof Backup
     */
    'status': BackupStatus;
    /**
     * timeRangeEnd records the end time of the backup.
     * @type {string}
     * @memberof Backup
     */
    'timeRangeEnd'?: string | null;
    /**
     * timeRangeStart records the start time of the backup.
     * @type {string}
     * @memberof Backup
     */
    'timeRangeStart'?: string | null;
    /**
     * Backup total size. A string with capacity units in the form of \"1Gi\", \"1Mi\", \"1Ki\".
     * @type {string}
     * @memberof Backup
     */
    'totalSize': string;
    /**
     *
     * @type {string}
     * @memberof Backup
     */
    'failureReason'?: string;
    /**
     *
     * @type {string}
     * @memberof Backup
     */
    'extras'?: string;
    /**
     * backup parameters
     * @type {Array<BackupParametersInner>}
     * @memberof Backup
     */
    'parameters'?: Array<BackupParametersInner>;
    /**
     * backup selected objects
     * @type {Array<SelectiveObjectTreeNode>}
     * @memberof Backup
     */
    'selectedObjects'?: Array<SelectiveObjectTreeNode>;
    /**
     * backup target pods
     * @type {Array<string>}
     * @memberof Backup
     */
    'targetPods'?: Array<string>;
    /**
     * the path of backup files
     * @type {string}
     * @memberof Backup
     */
    'path'?: string;
    /**
     * determines a duration up to which the backup should be kept
     * @type {string}
     * @memberof Backup
     */
    'retentionPeriod': string;
    /**
     * indicates when this backup becomes eligible for garbage collection
     * @type {string}
     * @memberof Backup
     */
    'expiration'?: string | null;
    /**
     * the backup id
     * @type {string}
     * @memberof Backup
     */
    'id'?: string;
    /**
     * the id of cluster that backup belong to
     * @type {string}
     * @memberof Backup
     */
    'clusterId'?: string;
    /**
     * the cloud provider
     * @type {string}
     * @memberof Backup
     */
    'cloudProvider'?: string;
    /**
     * the cloud region
     * @type {string}
     * @memberof Backup
     */
    'cloudRegion'?: string;
    /**
     * the environment name
     * @type {string}
     * @memberof Backup
     */
    'environmentName': string;
    /**
     * the cluster engine
     * @type {string}
     * @memberof Backup
     */
    'engine': string;
    /**
     * the parent backup name
     * @type {string}
     * @memberof Backup
     */
    'parentBackupName'?: string;
    /**
     * the base backup name
     * @type {string}
     * @memberof Backup
     */
    'baseBackupName'?: string;
    /**
     * the key name used for encryption
     * @type {string}
     * @memberof Backup
     */
    'encryptionKeyName'?: string;
}
//# sourceMappingURL=backup.d.ts.map