RemovalPolicy Enum
Possible values for a resource's Removal Policy.
The removal policy controls what happens to the resource if it stops being managed by CloudFormation. This can happen in one of three situations:
- The resource is removed from the template, so CloudFormation stops managing it;
- A change to the resource is made that requires it to be replaced, so CloudFormation stops managing it;
- The stack is deleted, so CloudFormation stops managing all resources in it.
The Removal Policy applies to all above cases.
Many stateful resources in the AWS Construct Library will accept a removalPolicy as a property, typically defaulting it to RETAIN.
If the AWS Construct Library resource does not accept a removalPolicy argument, you can always configure it by using the escape hatch mechanism, as shown in the following example:
ts
declare const bucket: s3.Bucket;
const cfnBucket = bucket.node.findChild('Resource') as CfnResource;
cfnBucket.applyRemovalPolicy(RemovalPolicy.DESTROY);
Example
ts
declare const myRole: iam.Role;
new cr.AwsCustomResource(this, 'Customized', {
role: myRole, // must be assumable by the `lambda.amazonaws.com` service principal
timeout: Duration.minutes(10), // defaults to 2 minutes
memorySize: 1025, // defaults to 512 if installLatestAwsSdk is true
logGroup: new logs.LogGroup(this, 'AwsCustomResourceLogs', {
retention: logs.RetentionDays.ONE_DAY,
}),
functionName: 'my-custom-name', // defaults to a CloudFormation generated name
removalPolicy: RemovalPolicy.RETAIN, // defaults to `RemovalPolicy.DESTROY`
policy: cr.AwsCustomResourcePolicy.fromSdkCalls({
resources: cr.AwsCustomResourcePolicy.ANY_RESOURCE,
}),
});
Members
| Member | Description |
|---|---|
DESTROY | When this removal policy is applied, the resource will be physically destroyed when it is removed from the stack or when the stack is deleted. |
RETAIN | This uses the 'Retain' DeletionPolicy, which will cause the resource to be retained in the account, but orphaned from the stack. |
SNAPSHOT | This retention policy deletes the resource, but saves a snapshot of its data before deleting, so that it can be re-created later. |
RETAIN_ON_UPDATE_OR_DELETE | Resource will be retained when they are requested to be deleted during a stack delete request or need to be replaced due to a stack update request. |
Referenced by
AccessEntryProps.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyAccessEntryProps.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyAddonProps.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyAddonProps.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyAlbControllerOptions.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyAlbControllerOptions.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyAliasProps.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyApplicationProps.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyAwsCustomResourceProps.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyBackupVaultProps.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyBucketPolicyProps.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyBucketProps.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyChannelGroupProps.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyChannelOptions.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyClusterCommonOptions.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyClusterInstanceBindOptions.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyClusterOptions.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyClusterProps.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyClusterProps.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyClusterProps.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyClusterSubnetGroupProps.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyCrossAccountZoneDelegationRecordProps.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyCustomResourceProps.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyDatabaseClusterFromSnapshotProps.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyDatabaseClusterProps.instanceRemovalPolicyinstance_removal_policyinstanceRemovalPolicyInstanceRemovalPolicyInstanceRemovalPolicyDatabaseClusterProps.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyDatabaseClusterProps.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyDatabaseClusterProps.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyDatabaseClusterProps.securityGroupRemovalPolicysecurity_group_removal_policysecurityGroupRemovalPolicySecurityGroupRemovalPolicySecurityGroupRemovalPolicyDatabaseInstanceNewProps.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyDatabaseInstanceProps.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyDatabaseInstanceProps.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyDatabaseProps.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyDatabaseProps.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyDataQualityRulesetProps.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyDataQualityRulesetProps.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyDomainProps.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyDomainProps.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyFargateProfileOptions.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyFargateProfileOptions.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyFileSystemProps.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyFileSystemProps.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyFunctionOptions.logRemovalPolicylog_removal_policylogRemovalPolicyLogRemovalPolicyLogRemovalPolicyHelmChartOptions.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyHelmChartOptions.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyKeyProps.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyKubectlProviderOptions.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyKubectlProviderProps.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyKubernetesManifestOptions.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyKubernetesManifestOptions.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyKubernetesObjectValueProps.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyKubernetesObjectValueProps.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyKubernetesPatchProps.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyKubernetesPatchProps.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyLayerVersionOptions.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyLogGroupProps.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyLogRetentionProps.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyLogStreamProps.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyNamespaceProps.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyNestedStackProps.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyNodegroupOptions.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyNodegroupOptions.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyOidcProviderNativeProps.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyOpenIdConnectProviderProps.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyOpenIdConnectProviderProps.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyOpenIdConnectProviderProps.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyOriginEndpointOptions.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyParameterGroupProps.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyQueueProps.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyRemovalPolicyOptions.defaultdefaultdefaultDefaultDefaultReportGroupProps.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyRepositoryProps.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyRestApiBaseProps.cloudWatchRoleRemovalPolicycloud_watch_role_removal_policycloudWatchRoleRemovalPolicyCloudWatchRoleRemovalPolicyCloudWatchRoleRemovalPolicyScheduleGroupProps.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicySecretProps.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicySecurityConfigurationProps.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicySecurityConfigurationProps.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyServerlessClusterFromSnapshotProps.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyServerlessClusterProps.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyServiceAccountOptions.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyServiceAccountOptions.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyStateMachineProps.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyStreamProps.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicySubnetGroupProps.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicySubnetGroupProps.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyTableBucketPolicyProps.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyTableBucketProps.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyTableOptions.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyTableOptions.replicaRemovalPolicyreplica_removal_policyreplicaRemovalPolicyReplicaRemovalPolicyReplicaRemovalPolicyTablePolicyProps.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyTableProps.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyTableProps.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyTablePropsV2.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyTableV2MultiAccountReplicaProps.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyUserPoolProps.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyUserProps.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyVersionOptions.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicyVolumeProps.removalPolicyremoval_policyremovalPolicyRemovalPolicyRemovalPolicy