/* 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 { BackupRetentionPolicy } from './backup-retention-policy';
// May contain unused imports in some cases
// @ts-ignore
import type { EncryptionConfig } from './encryption-config';

/**
 * BackupPolicy is the payload for KubeBlocks cluster backup policy
 * @export
 * @interface BackupPolicy
 */
export interface BackupPolicy {
    /**
     * specify whether to use auto backup
     * @type {boolean}
     * @memberof BackupPolicy
     */
    'autoBackup'?: boolean;
    /**
     * the auto full backup method
     * @type {string}
     * @memberof BackupPolicy
     */
    'autoBackupMethod'?: string;
    /**
     * specify whether to enable point-in-time recovery
     * @type {boolean}
     * @memberof BackupPolicy
     */
    'pitrEnabled'?: boolean;
    /**
     * continuous backup method for pitr
     * @type {string}
     * @memberof BackupPolicy
     */
    'continuousBackupMethod'?: string;
    /**
     * the crop expression for schedule
     * @type {string}
     * @memberof BackupPolicy
     */
    'cronExpression'?: string;
    /**
     * specify whether to enable incremental backup
     * @type {boolean}
     * @memberof BackupPolicy
     */
    'incrementalBackupEnabled'?: boolean;
    /**
     * the crop expression for incremental backup schedule
     * @type {string}
     * @memberof BackupPolicy
     */
    'incrementalCronExpression'?: string;
    /**
     * specify the retention period
     * @type {string}
     * @memberof BackupPolicy
     */
    'retentionPeriod'?: string;
    /**
     * the backup repo name, which is used to store backup data
     * @type {string}
     * @memberof BackupPolicy
     */
    'backupRepo'?: string;
    /**
     * 
     * @type {BackupRetentionPolicy}
     * @memberof BackupPolicy
     */
    'retentionPolicy'?: BackupRetentionPolicy;
    /**
     * the time to do next backup
     * @type {string}
     * @memberof BackupPolicy
     */
    'nextBackupTime'?: string | null;
    /**
     * 
     * @type {EncryptionConfig}
     * @memberof BackupPolicy
     */
    'encryptionConfig'?: EncryptionConfig;
    /**
     * 
     * @type {{ [key: string]: { [key: string]: string; }; }}
     * @memberof BackupPolicy
     */
    'backupParameters'?: { [key: string]: { [key: string]: string; }; };
}



