aws-cdk-lib
Version:
Version 2 of the AWS Cloud Development Kit library
83 lines (82 loc) • 2.43 kB
TypeScript
import { Construct } from 'constructs';
import { IBackupPlan } from './plan';
import { BackupResource } from './resource';
import * as iam from '../../aws-iam';
import { Resource } from '../../core';
/**
* Options for a BackupSelection
*/
export interface BackupSelectionOptions {
/**
* The resources to backup.
* Use the helper static methods defined on `BackupResource`.
*/
readonly resources: BackupResource[];
/**
* The name for this selection
*
* @default - a CDK generated name
*/
readonly backupSelectionName?: string;
/**
* The role that AWS Backup uses to authenticate when backuping or restoring
* the resources. The `AWSBackupServiceRolePolicyForBackup` managed policy
* will be attached to this role unless `disableDefaultBackupPolicy`
* is set to `true`.
*
* @default - a new role will be created
*/
readonly role?: iam.IRole;
/**
* Whether to disable automatically assigning default backup permissions to the role
* that AWS Backup uses.
* If `false`, the `AWSBackupServiceRolePolicyForBackup` managed policy will be
* attached to the role.
*
* @default false
*/
readonly disableDefaultBackupPolicy?: boolean;
/**
* Whether to automatically give restores permissions to the role that AWS
* Backup uses. If `true`, the `AWSBackupServiceRolePolicyForRestores` managed
* policy will be attached to the role.
*
* @default false
*/
readonly allowRestores?: boolean;
}
/**
* Properties for a BackupSelection
*/
export interface BackupSelectionProps extends BackupSelectionOptions {
/**
* The backup plan for this selection
*/
readonly backupPlan: IBackupPlan;
}
/**
* A backup selection
*/
export declare class BackupSelection extends Resource implements iam.IGrantable {
/**
* The identifier of the backup plan.
*
* @attribute
*/
readonly backupPlanId: string;
/**
* The identifier of the backup selection.
*
* @attribute
*/
readonly selectionId: string;
/**
* The principal to grant permissions to
*/
readonly grantPrincipal: iam.IPrincipal;
private listOfTags;
private resources;
private readonly backupableResourcesCollector;
constructor(scope: Construct, id: string, props: BackupSelectionProps);
private addResource;
}