# BackupResource

A resource to backup.

- Source: [`aws-backup/lib/resource.ts`](https://github.com/aws/aws-cdk/blob/v2.274.0/packages/aws-cdk-lib/aws-backup/lib/resource.ts#L55)
- Type last changed: v2.235.0 · 15 Jan 2026

## Example

```ts
declare const plan: backup.BackupPlan;
declare const vpc: ec2.Vpc;
const myTable = dynamodb.Table.fromTableName(this, 'Table', 'myTableName');
const myDatabaseInstance = new rds.DatabaseInstance(this, 'DatabaseInstance', {
  engine: rds.DatabaseInstanceEngine.mysql({ version: rds.MysqlEngineVersion.VER_8_0_26 }),
  vpc,
});
const myDatabaseCluster = new rds.DatabaseCluster(this, 'DatabaseCluster', {
  engine: rds.DatabaseClusterEngine.auroraMysql({ version: rds.AuroraMysqlEngineVersion.VER_2_08_1 }),
  credentials: rds.Credentials.fromGeneratedSecret('clusteradmin'),
  instanceProps: {
    vpc,
  },
});
const myServerlessCluster = new rds.ServerlessCluster(this, 'ServerlessCluster', {
  engine: rds.DatabaseClusterEngine.AURORA_POSTGRESQL,
  parameterGroup: rds.ParameterGroup.fromParameterGroupName(this, 'ParameterGroup', 'default.aurora-postgresql11'),
  vpc,
});
const myCoolConstruct = new Construct(this, 'MyCoolConstruct');

plan.addSelection('Selection', {
  resources: [
    backup.BackupResource.fromDynamoDbTable(myTable), // A DynamoDB table
    backup.BackupResource.fromRdsDatabaseInstance(myDatabaseInstance), // A RDS instance
    backup.BackupResource.fromRdsDatabaseCluster(myDatabaseCluster), // A RDS database cluster
    backup.BackupResource.fromRdsServerlessCluster(myServerlessCluster), // An Aurora Serverless cluster
    backup.BackupResource.fromTag('stage', 'prod'), // All resources that are tagged stage=prod in the region/account
    backup.BackupResource.fromConstruct(myCoolConstruct), // All backupable resources in `myCoolConstruct`
  ]
})
```

## Initializer

```ts
new BackupResource(resource?: string, tagCondition?: TagCondition, construct?: Construct)
```

## Properties

- `construct`: [Construct](/cdk/api/v2/docs/constructs.Construct.html) — A construct.

- `resource`: string — A resource.

- `tagCondition`: [TagCondition](/cdk/api/v2/docs/aws-cdk-lib.aws_backup.TagCondition.html) — A condition on a tag.

## Methods

- `fromArn(arn: string): BackupResource // chainable` (static) — A list of ARNs or match patterns such as `arn:aws:ec2:us-east-1:123456789012:volume/*`.

- `fromConstruct(construct: Construct): BackupResource // chainable` (static) — Adds all supported resources in a construct.

  **Parameters**

  - `construct` — The construct containing resources to backup.

- `fromDynamoDbTable(table: ITableRef): BackupResource // chainable` (static) — A DynamoDB table.

- `fromEc2Instance(instance: IInstanceRef): BackupResource // chainable` (static) — An EC2 instance.

- `fromEfsFileSystem(fileSystem: IFileSystemRef): BackupResource // chainable` (static) — An EFS file system.

- `fromRdsDatabaseCluster(cluster: IDBClusterRef): BackupResource // chainable` (static) — A RDS database cluter.

- `fromRdsDatabaseInstance(instance: IDBInstanceRef): BackupResource // chainable` (static) — A RDS database instance.

- `fromRdsServerlessCluster(cluster: IDBClusterRef): BackupResource // chainable` (static) — An Aurora database instance.

- `fromTag(key: string, value: string, operation?: TagOperation): BackupResource // chainable` (static) — A tag condition.
