Enum RemovalPolicy

java.lang.Object
java.lang.Enum<RemovalPolicy>
software.amazon.awscdk.RemovalPolicy
All Implemented Interfaces:
Serializable, Comparable<RemovalPolicy>, java.lang.constant.Constable

@Generated(value="jsii-pacmak/1.112.0 (build de1bc80)", date="2025-07-24T11:33:07.633Z") @Stability(Stable) public enum RemovalPolicy extends Enum<RemovalPolicy>
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:

 Bucket bucket;
 CfnResource cfnBucket = (CfnResource)bucket.node.findChild("Resource");
 cfnBucket.applyRemovalPolicy(RemovalPolicy.DESTROY);
 

Example:

 import software.amazon.awscdk.*;
 App app = new App();
 Stack stack = Stack.Builder.create(app, "Stack").env(Environment.builder().region("us-west-2").build()).build();
 TableV2 globalTable = TableV2.Builder.create(stack, "GlobalTable")
         .partitionKey(Attribute.builder().name("pk").type(AttributeType.STRING).build())
         .removalPolicy(RemovalPolicy.DESTROY)
         .deletionProtection(true)
         // only the replica in us-east-1 will be deleted during stack deletion
         .replicas(List.of(ReplicaTableProps.builder()
                 .region("us-east-1")
                 .deletionProtection(false)
                 .build(), ReplicaTableProps.builder()
                 .region("us-east-2")
                 .deletionProtection(true)
                 .build()))
         .build();
 
  • Nested Class Summary

    Nested classes/interfaces inherited from class java.lang.Enum

    Enum.EnumDesc<E extends Enum<E>>
  • Enum Constant Summary

    Enum Constants
    Enum Constant
    Description
    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.
    This uses the 'Retain' DeletionPolicy, which will cause the resource to be retained in the account, but orphaned from the stack.
    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.
    This retention policy deletes the resource, but saves a snapshot of its data before deleting, so that it can be re-created later.
  • Method Summary

    Modifier and Type
    Method
    Description
    Returns the enum constant of this type with the specified name.
    static RemovalPolicy[]
    Returns an array containing the constants of this enum type, in the order they are declared.

    Methods inherited from class java.lang.Object

    getClass, notify, notifyAll, wait, wait, wait
  • Enum Constant Details

  • Method Details

    • values

      public static RemovalPolicy[] values()
      Returns an array containing the constants of this enum type, in the order they are declared.
      Returns:
      an array containing the constants of this enum type, in the order they are declared
    • valueOf

      public static RemovalPolicy valueOf(String name)
      Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
      Parameters:
      name - the name of the enum constant to be returned.
      Returns:
      the enum constant with the specified name
      Throws:
      IllegalArgumentException - if this enum type has no constant with the specified name
      NullPointerException - if the argument is null