Class CfnVolume

java.lang.Object
software.amazon.jsii.JsiiObject
software.constructs.Construct
All Implemented Interfaces:
IInspectable, IVolumeRef, IEnvironmentAware, ITaggable, software.amazon.jsii.JsiiSerializable, software.constructs.IConstruct, software.constructs.IDependable

@Generated(value="jsii-pacmak/1.121.0 (build d7af9b9)", date="2025-12-18T18:20:09.147Z") @Stability(Stable) public class CfnVolume extends CfnResource implements IInspectable, IVolumeRef, ITaggable
Specifies an Amazon Elastic Block Store (Amazon EBS) volume.

You can create an empty volume, a volume from a snapshot, or a volume copy from an existing source volume.

  • When you use AWS CloudFormation to update an Amazon EBS volume that modifies Iops , Size , or VolumeType , there is a cooldown period before another operation can occur. This can cause your stack to report being in UPDATE_IN_PROGRESS or UPDATE_ROLLBACK_IN_PROGRESS for long periods of time. Some common scenarios when you might encounter a cooldown period for Amazon EBS include:
  • You successfully update an Amazon EBS volume and the update succeeds. When you attempt another update within the cooldown window, that update will be subject to a cooldown period.
  • You successfully update an Amazon EBS volume and the update succeeds but another change in your update-stack call fails. The rollback will be subject to a cooldown period.

For more information, see Requirements for EBS volume modifications .

  • Amazon EBS does not support sizing down an Amazon EBS volume. AWS CloudFormation does not attempt to modify an Amazon EBS volume to a smaller size on rollback.

DeletionPolicy attribute

To control how AWS CloudFormation handles the volume when the stack is deleted, set a deletion policy for your volume. You can choose to retain the volume, to delete the volume, or to create a snapshot of the volume. For more information, see DeletionPolicy attribute .

If you set a deletion policy that creates a snapshot, all tags on the volume are included in the snapshot.

Example:

 // The code below shows an example of how to instantiate this type.
 // The values are placeholders you should change.
 import software.amazon.awscdk.services.ec2.*;
 CfnVolume cfnVolume = CfnVolume.Builder.create(this, "MyCfnVolume")
         .autoEnableIo(false)
         .availabilityZone("availabilityZone")
         .availabilityZoneId("availabilityZoneId")
         .encrypted(false)
         .iops(123)
         .kmsKeyId("kmsKeyId")
         .multiAttachEnabled(false)
         .outpostArn("outpostArn")
         .size(123)
         .snapshotId("snapshotId")
         .sourceVolumeId("sourceVolumeId")
         .tags(List.of(CfnTag.builder()
                 .key("key")
                 .value("value")
                 .build()))
         .throughput(123)
         .volumeInitializationRate(123)
         .volumeType("volumeType")
         .build();
 

See Also:
  • Field Details

    • CFN_RESOURCE_TYPE_NAME

      @Stability(Stable) public static final String CFN_RESOURCE_TYPE_NAME
      The CloudFormation resource type name for this resource class.
  • Constructor Details

    • CfnVolume

      protected CfnVolume(software.amazon.jsii.JsiiObjectRef objRef)
    • CfnVolume

      protected CfnVolume(software.amazon.jsii.JsiiObject.InitializationMode initializationMode)
    • CfnVolume

      @Stability(Stable) public CfnVolume(@NotNull software.constructs.Construct scope, @NotNull String id, @Nullable CfnVolumeProps props)
      Create a new AWS::EC2::Volume.

      Parameters:
      scope - Scope in which this resource is defined. This parameter is required.
      id - Construct identifier for this resource (unique in its scope). This parameter is required.
      props - Resource properties.
    • CfnVolume

      @Stability(Stable) public CfnVolume(@NotNull software.constructs.Construct scope, @NotNull String id)
      Create a new AWS::EC2::Volume.

      Parameters:
      scope - Scope in which this resource is defined. This parameter is required.
      id - Construct identifier for this resource (unique in its scope). This parameter is required.
  • Method Details

    • arnForVolume

      @Stability(Stable) @NotNull public static String arnForVolume(@NotNull IVolumeRef resource)
      Parameters:
      resource - This parameter is required.
    • fromVolumeId

      @Stability(Stable) @NotNull public static IVolumeRef fromVolumeId(@NotNull software.constructs.Construct scope, @NotNull String id, @NotNull String volumeId)
      Creates a new IVolumeRef from a volumeId.

      Parameters:
      scope - This parameter is required.
      id - This parameter is required.
      volumeId - This parameter is required.
    • isCfnVolume

      @Stability(Stable) @NotNull public static Boolean isCfnVolume(@NotNull Object x)
      Checks whether the given object is a CfnVolume.

      Parameters:
      x - This parameter is required.
    • inspect

      @Stability(Stable) public void inspect(@NotNull TreeInspector inspector)
      Examines the CloudFormation resource and discloses attributes.

      Specified by:
      inspect in interface IInspectable
      Parameters:
      inspector - tree inspector to collect and process attributes. This parameter is required.
    • renderProperties

      @Stability(Stable) @NotNull protected Map<String,Object> renderProperties(@NotNull Map<String,Object> props)
      Overrides:
      renderProperties in class CfnResource
      Parameters:
      props - This parameter is required.
    • getAttrVolumeId

      @Stability(Stable) @NotNull public String getAttrVolumeId()
      The ID of the volume.
    • getCfnProperties

      @Stability(Stable) @NotNull protected Map<String,Object> getCfnProperties()
      Overrides:
      getCfnProperties in class CfnResource
    • getTags

      @Stability(Stable) @NotNull public TagManager getTags()
      Tag Manager which manages the tags for this resource.
      Specified by:
      getTags in interface ITaggable
    • getVolumeRef

      @Stability(Stable) @NotNull public VolumeReference getVolumeRef()
      A reference to a Volume resource.
      Specified by:
      getVolumeRef in interface IVolumeRef
    • getAutoEnableIo

      @Stability(Stable) @Nullable public Object getAutoEnableIo()
      Indicates whether the volume is auto-enabled for I/O operations.

      Returns union: either Boolean or IResolvable

    • setAutoEnableIo

      @Stability(Stable) public void setAutoEnableIo(@Nullable Boolean value)
      Indicates whether the volume is auto-enabled for I/O operations.
    • setAutoEnableIo

      @Stability(Stable) public void setAutoEnableIo(@Nullable IResolvable value)
      Indicates whether the volume is auto-enabled for I/O operations.
    • getAvailabilityZone

      @Stability(Stable) @Nullable public String getAvailabilityZone()
      The ID of the Availability Zone in which to create the volume.

      For example, us-east-1a .

    • setAvailabilityZone

      @Stability(Stable) public void setAvailabilityZone(@Nullable String value)
      The ID of the Availability Zone in which to create the volume.

      For example, us-east-1a .

    • getAvailabilityZoneId

      @Stability(Stable) @Nullable public String getAvailabilityZoneId()
      The ID of the Availability Zone in which to create the volume.

      For example, use1-az1 .

    • setAvailabilityZoneId

      @Stability(Stable) public void setAvailabilityZoneId(@Nullable String value)
      The ID of the Availability Zone in which to create the volume.

      For example, use1-az1 .

    • getEncrypted

      @Stability(Stable) @Nullable public Object getEncrypted()
      Indicates whether the volume should be encrypted.

      Returns union: either Boolean or IResolvable

    • setEncrypted

      @Stability(Stable) public void setEncrypted(@Nullable Boolean value)
      Indicates whether the volume should be encrypted.
    • setEncrypted

      @Stability(Stable) public void setEncrypted(@Nullable IResolvable value)
      Indicates whether the volume should be encrypted.
    • getIops

      @Stability(Stable) @Nullable public Number getIops()
      The number of I/O operations per second (IOPS) to provision for the volume.
    • setIops

      @Stability(Stable) public void setIops(@Nullable Number value)
      The number of I/O operations per second (IOPS) to provision for the volume.
    • getKmsKeyId

      @Stability(Stable) @Nullable public String getKmsKeyId()
      The identifier of the AWS KMS key to use for Amazon EBS encryption.
    • setKmsKeyId

      @Stability(Stable) public void setKmsKeyId(@Nullable String value)
      The identifier of the AWS KMS key to use for Amazon EBS encryption.
    • getMultiAttachEnabled

      @Stability(Stable) @Nullable public Object getMultiAttachEnabled()
      Indicates whether Amazon EBS Multi-Attach is enabled.

      Returns union: either Boolean or IResolvable

    • setMultiAttachEnabled

      @Stability(Stable) public void setMultiAttachEnabled(@Nullable Boolean value)
      Indicates whether Amazon EBS Multi-Attach is enabled.
    • setMultiAttachEnabled

      @Stability(Stable) public void setMultiAttachEnabled(@Nullable IResolvable value)
      Indicates whether Amazon EBS Multi-Attach is enabled.
    • getOutpostArn

      @Stability(Stable) @Nullable public String getOutpostArn()
      The Amazon Resource Name (ARN) of the Outpost on which to create the volume.
    • setOutpostArn

      @Stability(Stable) public void setOutpostArn(@Nullable String value)
      The Amazon Resource Name (ARN) of the Outpost on which to create the volume.
    • getSize

      @Stability(Stable) @Nullable public Number getSize()
      The size of the volume, in GiBs.
    • setSize

      @Stability(Stable) public void setSize(@Nullable Number value)
      The size of the volume, in GiBs.
    • getSnapshotId

      @Stability(Stable) @Nullable public String getSnapshotId()
      The snapshot from which to create the volume.
    • setSnapshotId

      @Stability(Stable) public void setSnapshotId(@Nullable String value)
      The snapshot from which to create the volume.
    • getSourceVolumeId

      @Stability(Stable) @Nullable public String getSourceVolumeId()
      The ID of the source EBS volume to copy.
    • setSourceVolumeId

      @Stability(Stable) public void setSourceVolumeId(@Nullable String value)
      The ID of the source EBS volume to copy.
    • getTagsRaw

      @Stability(Stable) @Nullable public List<CfnTag> getTagsRaw()
      The tags to apply to the volume during creation.
    • setTagsRaw

      @Stability(Stable) public void setTagsRaw(@Nullable List<CfnTag> value)
      The tags to apply to the volume during creation.
    • getThroughput

      @Stability(Stable) @Nullable public Number getThroughput()
      The throughput to provision for a volume, with a maximum of 1,000 MiB/s.
    • setThroughput

      @Stability(Stable) public void setThroughput(@Nullable Number value)
      The throughput to provision for a volume, with a maximum of 1,000 MiB/s.
    • getVolumeInitializationRate

      @Stability(Stable) @Nullable public Number getVolumeInitializationRate()
      Specifies the Amazon EBS Provisioned Rate for Volume Initialization (volume initialization rate), in MiB/s, at which to download the snapshot blocks from Amazon S3 to the volume.
    • setVolumeInitializationRate

      @Stability(Stable) public void setVolumeInitializationRate(@Nullable Number value)
      Specifies the Amazon EBS Provisioned Rate for Volume Initialization (volume initialization rate), in MiB/s, at which to download the snapshot blocks from Amazon S3 to the volume.
    • getVolumeType

      @Stability(Stable) @Nullable public String getVolumeType()
      The volume type.

      This parameter can be one of the following values:.

    • setVolumeType

      @Stability(Stable) public void setVolumeType(@Nullable String value)
      The volume type.

      This parameter can be one of the following values:.