85 lines
2.5 KiB
TypeScript
85 lines
2.5 KiB
TypeScript
import type { Construct } from 'constructs';
|
|
import type { BackupResource } from './resource';
|
|
import * as iam from '../../aws-iam';
|
|
import { Resource } from '../../core';
|
|
import type { IBackupPlanRef } from '../../interfaces/generated/aws-backup-interfaces.generated';
|
|
/**
|
|
* 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: IBackupPlanRef;
|
|
}
|
|
/**
|
|
* A backup selection
|
|
*/
|
|
export declare class BackupSelection extends Resource implements iam.IGrantable {
|
|
/** Uniquely identifies this class. */
|
|
static readonly PROPERTY_INJECTION_ID: string;
|
|
/**
|
|
* 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;
|
|
}
|