Module: AWSCDK::RemovalPolicy

Defined in:
removal_policy.rb

Overview

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 removal_policy as a property, typically defaulting it to RETAIN.

If the AWS Construct Library resource does not accept a removal_policy argument, you can always configure it by using the escape hatch mechanism, as shown in the following example:

bucket = nil # AWSCDK::S3::Bucket


cfn_bucket = bucket.node.find_child("Resource")
cfn_bucket.apply_removal_policy(AWSCDK::RemovalPolicy::DESTROY)

Constant Summary collapse

DESTROY =
Deprecated.
Note:

Default:

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.

Jsii::Enum.new("aws-cdk-lib.RemovalPolicy", "DESTROY")
RETAIN =
Deprecated.
Note:

Default:

This uses the 'Retain' DeletionPolicy, which will cause the resource to be retained in the account, but orphaned from the stack.

Most resources default to this removal policy.

Jsii::Enum.new("aws-cdk-lib.RemovalPolicy", "RETAIN")
SNAPSHOT =
Deprecated.
Note:

Default:

This retention policy deletes the resource, but saves a snapshot of its data before deleting, so that it can be re-created later.

Only available for some stateful resources, like databases, EC2 volumes, etc.

Jsii::Enum.new("aws-cdk-lib.RemovalPolicy", "SNAPSHOT")
RETAIN_ON_UPDATE_OR_DELETE =
Deprecated.
Note:

Default:

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.

Resource are not retained, if the creation is rolled back.

The result is that new, empty, and unused resources are deleted, while in-use resources and their data are retained.

This uses the 'RetainExceptOnCreate' DeletionPolicy, and the 'Retain' UpdateReplacePolicy, when apply_to_update_replace_policy is set.

Jsii::Enum.new("aws-cdk-lib.RemovalPolicy", "RETAIN_ON_UPDATE_OR_DELETE")