140 lines
4.5 KiB
TypeScript
140 lines
4.5 KiB
TypeScript
import * as events from '../../aws-events';
|
|
import type { TimeZone } from '../../core';
|
|
import { Duration } from '../../core';
|
|
import type { IBackupVaultRef } from '../../interfaces/generated/aws-backup-interfaces.generated';
|
|
/**
|
|
* Properties for a BackupPlanRule
|
|
*/
|
|
export interface BackupPlanRuleProps {
|
|
/**
|
|
* The duration after a backup job is successfully started before it must be
|
|
* completed or it is canceled by AWS Backup.
|
|
*
|
|
* @default - 7 days
|
|
*/
|
|
readonly completionWindow?: Duration;
|
|
/**
|
|
* Specifies the duration after creation that a recovery point is deleted.
|
|
* Must be greater than `moveToColdStorageAfter`.
|
|
*
|
|
* @default - recovery point is never deleted
|
|
*/
|
|
readonly deleteAfter?: Duration;
|
|
/**
|
|
* Specifies the duration after creation that a recovery point is moved to cold
|
|
* storage.
|
|
*
|
|
* @default - recovery point is never moved to cold storage
|
|
*/
|
|
readonly moveToColdStorageAfter?: Duration;
|
|
/**
|
|
* A display name for the backup rule.
|
|
*
|
|
* @default - a CDK generated name
|
|
*/
|
|
readonly ruleName?: string;
|
|
/**
|
|
* A CRON expression specifying when AWS Backup initiates a backup job.
|
|
*
|
|
* @default - no schedule
|
|
*/
|
|
readonly scheduleExpression?: events.Schedule;
|
|
/**
|
|
* The timezone in which the schedule expression is set.
|
|
*
|
|
* @default - UTC
|
|
*/
|
|
readonly scheduleExpressionTimezone?: TimeZone;
|
|
/**
|
|
* The duration after a backup is scheduled before a job is canceled if it doesn't start successfully.
|
|
*
|
|
* @default - 8 hours
|
|
*/
|
|
readonly startWindow?: Duration;
|
|
/**
|
|
* The backup vault where backups are
|
|
*
|
|
* @default - use the vault defined at the plan level. If not defined a new
|
|
* common vault for the plan will be created
|
|
*/
|
|
readonly backupVault?: IBackupVaultRef;
|
|
/**
|
|
* Enables continuous backup and point-in-time restores (PITR).
|
|
*
|
|
* Property `deleteAfter` defines the retention period for the backup. It is mandatory if PITR is enabled.
|
|
* If no value is specified, the retention period is set to 35 days which is the maximum retention period supported by PITR.
|
|
*
|
|
* Property `moveToColdStorageAfter` must not be specified because PITR does not support this option.
|
|
*
|
|
* @default false
|
|
*/
|
|
readonly enableContinuousBackup?: boolean;
|
|
/**
|
|
* Copy operations to perform on recovery points created by this rule
|
|
*
|
|
* @default - no copy actions
|
|
*/
|
|
readonly copyActions?: BackupPlanCopyActionProps[];
|
|
/**
|
|
* To help organize your resources, you can assign your own metadata to the resources that you create. Each tag is a key-value pair.
|
|
*
|
|
* @default - no recovery point tags.
|
|
*/
|
|
readonly recoveryPointTags?: {
|
|
[key: string]: string;
|
|
};
|
|
}
|
|
/**
|
|
* Properties for a BackupPlanCopyAction
|
|
*/
|
|
export interface BackupPlanCopyActionProps {
|
|
/**
|
|
* Destination Vault for recovery points to be copied into
|
|
*/
|
|
readonly destinationBackupVault: IBackupVaultRef;
|
|
/**
|
|
* Specifies the duration after creation that a copied recovery point is deleted from the destination vault.
|
|
* Must be at least 90 days greater than `moveToColdStorageAfter`, if specified.
|
|
*
|
|
* @default - recovery point is never deleted
|
|
*/
|
|
readonly deleteAfter?: Duration;
|
|
/**
|
|
* Specifies the duration after creation that a copied recovery point is moved to cold storage.
|
|
*
|
|
* @default - recovery point is never moved to cold storage
|
|
*/
|
|
readonly moveToColdStorageAfter?: Duration;
|
|
}
|
|
/**
|
|
* A backup plan rule
|
|
*/
|
|
export declare class BackupPlanRule {
|
|
/**
|
|
* Daily with 35 days retention
|
|
*/
|
|
static daily(backupVault?: IBackupVaultRef): BackupPlanRule;
|
|
/**
|
|
* Weekly with 3 months retention
|
|
*/
|
|
static weekly(backupVault?: IBackupVaultRef): BackupPlanRule;
|
|
/**
|
|
* Monthly 1 year retention, move to cold storage after 1 month
|
|
*/
|
|
static monthly1Year(backupVault?: IBackupVaultRef): BackupPlanRule;
|
|
/**
|
|
* Monthly 5 year retention, move to cold storage after 3 months
|
|
*/
|
|
static monthly5Year(backupVault?: IBackupVaultRef): BackupPlanRule;
|
|
/**
|
|
* Monthly 7 year retention, move to cold storage after 3 months
|
|
*/
|
|
static monthly7Year(backupVault?: IBackupVaultRef): BackupPlanRule;
|
|
/**
|
|
* Properties of BackupPlanRule
|
|
*/
|
|
readonly props: BackupPlanRuleProps;
|
|
/** @param props Rule properties */
|
|
constructor(props: BackupPlanRuleProps);
|
|
}
|