Class CfnVolumeProps.Builder

java.lang.Object
software.amazon.awscdk.services.ec2.CfnVolumeProps.Builder
All Implemented Interfaces:
software.amazon.jsii.Builder<CfnVolumeProps>
Enclosing interface:
CfnVolumeProps

@Stability(Stable) public static final class CfnVolumeProps.Builder extends Object implements software.amazon.jsii.Builder<CfnVolumeProps>
A builder for CfnVolumeProps
  • Constructor Details

    • Builder

      public Builder()
  • Method Details

    • autoEnableIo

      @Stability(Stable) public CfnVolumeProps.Builder autoEnableIo(Boolean autoEnableIo)
      Parameters:
      autoEnableIo - Indicates whether the volume is auto-enabled for I/O operations. By default, Amazon EBS disables I/O to the volume from attached EC2 instances when it determines that a volume's data is potentially inconsistent. If the consistency of the volume is not a concern, and you prefer that the volume be made available immediately if it's impaired, you can configure the volume to automatically enable I/O.
      Returns:
      this
    • autoEnableIo

      @Stability(Stable) public CfnVolumeProps.Builder autoEnableIo(IResolvable autoEnableIo)
      Parameters:
      autoEnableIo - Indicates whether the volume is auto-enabled for I/O operations. By default, Amazon EBS disables I/O to the volume from attached EC2 instances when it determines that a volume's data is potentially inconsistent. If the consistency of the volume is not a concern, and you prefer that the volume be made available immediately if it's impaired, you can configure the volume to automatically enable I/O.
      Returns:
      this
    • availabilityZone

      @Stability(Stable) public CfnVolumeProps.Builder availabilityZone(String availabilityZone)
      Parameters:
      availabilityZone - The ID of the Availability Zone in which to create the volume. For example, us-east-1a . Either AvailabilityZone or AvailabilityZoneId must be specified, but not both.

      If you are creating a volume copy, omit this parameter. The volume copy is created in the same Availability Zone as the source volume.

      Returns:
      this
    • availabilityZoneId

      @Stability(Stable) public CfnVolumeProps.Builder availabilityZoneId(String availabilityZoneId)
      Parameters:
      availabilityZoneId - The ID of the Availability Zone in which to create the volume. For example, use1-az1 . Either AvailabilityZone or AvailabilityZoneId must be specified, but not both.

      If you are creating a volume copy, omit this parameter. The volume copy is created in the same Availability Zone as the source volume.

      Returns:
      this
    • encrypted

      @Stability(Stable) public CfnVolumeProps.Builder encrypted(Boolean encrypted)
      Parameters:
      encrypted - Indicates whether the volume should be encrypted. The effect of setting the encryption state to true depends on the volume origin (new, from a snapshot, or from an existing volume), starting encryption state, ownership, and whether encryption by default is enabled. For more information, see Encryption by default in the Amazon EBS User Guide .

      If you are creating a volume copy, omit this parameter. The volume is automatically encrypted with the same KMS key as the source volume. You can't copy unencrypted volumes.

      Returns:
      this
    • encrypted

      @Stability(Stable) public CfnVolumeProps.Builder encrypted(IResolvable encrypted)
      Parameters:
      encrypted - Indicates whether the volume should be encrypted. The effect of setting the encryption state to true depends on the volume origin (new, from a snapshot, or from an existing volume), starting encryption state, ownership, and whether encryption by default is enabled. For more information, see Encryption by default in the Amazon EBS User Guide .

      If you are creating a volume copy, omit this parameter. The volume is automatically encrypted with the same KMS key as the source volume. You can't copy unencrypted volumes.

      Returns:
      this
    • iops

      @Stability(Stable) public CfnVolumeProps.Builder iops(Number iops)
      Sets the value of CfnVolumeProps.getIops()
      Parameters:
      iops - The number of I/O operations per second (IOPS) to provision for the volume. Required for io1 and io2 volumes. Optional for gp3 volumes. Omit for all other volume types.

      Valid ranges:

      • gp3: 3,000 ( default ) - 80,000 IOPS
      • io1: 100 - 64,000 IOPS
      • io2: 100 - 256,000 IOPS

      Instances built on the Nitro System can support up to 256,000 IOPS. Other instances can support up to 32,000 IOPS.

      Returns:
      this
    • kmsKeyId

      @Stability(Stable) public CfnVolumeProps.Builder kmsKeyId(String kmsKeyId)
      Parameters:
      kmsKeyId - The identifier of the AWS KMS key to use for Amazon EBS encryption. If KmsKeyId is specified, the encrypted state must be true .

      If you omit this property and your account is enabled for encryption by default, or Encrypted is set to true , then the volume is encrypted using the default key specified for your account. If your account does not have a default key, then the volume is encrypted using the AWS managed key .

      Alternatively, if you want to specify a different key, you can specify one of the following:

      • Key ID. For example, 1234abcd-12ab-34cd-56ef-1234567890ab.
      • Key alias. Specify the alias for the key, prefixed with alias/ . For example, for a key with the alias my_cmk , use alias/my_cmk . Or to specify the AWS managed key , use alias/aws/ebs .
      • Key ARN. For example, arn:aws:kms:us-east-1:012345678910:key/1234abcd-12ab-34cd-56ef-1234567890ab.
      • Alias ARN. For example, arn:aws:kms:us-east-1:012345678910:alias/ExampleAlias.

      If you are creating a volume copy, omit this parameter. The volume is automatically encrypted with the same KMS key as the source volume. You can't copy unencrypted volumes.

      Returns:
      this
    • multiAttachEnabled

      @Stability(Stable) public CfnVolumeProps.Builder multiAttachEnabled(Boolean multiAttachEnabled)
      Parameters:
      multiAttachEnabled - Indicates whether Amazon EBS Multi-Attach is enabled. AWS CloudFormation does not currently support updating a single-attach volume to be multi-attach enabled, updating a multi-attach enabled volume to be single-attach, or updating the size or number of I/O operations per second (IOPS) of a multi-attach enabled volume.
      Returns:
      this
    • multiAttachEnabled

      @Stability(Stable) public CfnVolumeProps.Builder multiAttachEnabled(IResolvable multiAttachEnabled)
      Parameters:
      multiAttachEnabled - Indicates whether Amazon EBS Multi-Attach is enabled. AWS CloudFormation does not currently support updating a single-attach volume to be multi-attach enabled, updating a multi-attach enabled volume to be single-attach, or updating the size or number of I/O operations per second (IOPS) of a multi-attach enabled volume.
      Returns:
      this
    • outpostArn

      @Stability(Stable) public CfnVolumeProps.Builder outpostArn(String outpostArn)
      Parameters:
      outpostArn - The Amazon Resource Name (ARN) of the Outpost on which to create the volume. If you intend to use a volume with an instance running on an outpost, then you must create the volume on the same outpost as the instance. You can't use a volume created in an AWS Region with an instance on an AWS outpost, or the other way around.
      Returns:
      this
    • size

      @Stability(Stable) public CfnVolumeProps.Builder size(Number size)
      Sets the value of CfnVolumeProps.getSize()
      Parameters:
      size - The size of the volume, in GiBs.
      • Required for new empty volumes.
      • Optional for volumes created from snapshots and volume copies. In this case, the size defaults to the size of the snapshot or source volume. You can optionally specify a size that is equal to or larger than the size of the source snapshot or volume.

      Supported volume sizes:

      • gp2: 1 - 16,384 GiB
      • gp3: 1 - 65,536 GiB
      • io1: 4 - 16,384 GiB
      • io2: 4 - 65,536 GiB
      • st1 and sc1: 125 - 16,384 GiB
      • standard: 1 - 1024 GiB
      Returns:
      this
    • snapshotId

      @Stability(Stable) public CfnVolumeProps.Builder snapshotId(String snapshotId)
      Parameters:
      snapshotId - The snapshot from which to create the volume. Only specify to create a volume from a snapshot. To create a new empty volume, omit this parameter and specify a value for Size instead. To create a volume copy, omit this parameter and specify SourceVolumeId instead.
      Returns:
      this
    • sourceVolumeId

      @Stability(Stable) public CfnVolumeProps.Builder sourceVolumeId(String sourceVolumeId)
      Parameters:
      sourceVolumeId - The ID of the source EBS volume to copy. When specified, the volume is created as an exact copy of the specified volume. Only specify to create a volume copy. To create a new empty volume or to create a volume from a snapshot, omit this parameter,
      Returns:
      this
    • tags

      @Stability(Stable) public CfnVolumeProps.Builder tags(List<? extends CfnTag> tags)
      Sets the value of CfnVolumeProps.getTags()
      Parameters:
      tags - The tags to apply to the volume during creation.
      Returns:
      this
    • throughput

      @Stability(Stable) public CfnVolumeProps.Builder throughput(Number throughput)
      Parameters:
      throughput - The throughput to provision for a volume, with a maximum of 1,000 MiB/s. This parameter is valid only for gp3 volumes. The default value is 125.

      Valid Range: Minimum value of 125. Maximum value of 1000.

      Returns:
      this
    • volumeInitializationRate

      @Stability(Stable) public CfnVolumeProps.Builder volumeInitializationRate(Number volumeInitializationRate)
      Parameters:
      volumeInitializationRate - 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. This is also known as volume initialization . Specifying a volume initialization rate ensures that the volume is initialized at a predictable and consistent rate after creation.

      This parameter is supported only for volumes created from snapshots. Omit this parameter if:

      • You want to create the volume using fast snapshot restore. You must specify a snapshot that is enabled for fast snapshot restore. In this case, the volume is fully initialized at creation.

      If you specify a snapshot that is enabled for fast snapshot restore and a volume initialization rate, the volume will be initialized at the specified rate instead of fast snapshot restore.

      • You want to create a volume that is initialized at the default rate.

      For more information, see Initialize Amazon EBS volumes in the Amazon EC2 User Guide .

      Valid range: 100 - 300 MiB/s

      Returns:
      this
    • volumeType

      @Stability(Stable) public CfnVolumeProps.Builder volumeType(String volumeType)
      Parameters:
      volumeType - The volume type. This parameter can be one of the following values:.
      • General Purpose SSD: gp2 | gp3
      • Provisioned IOPS SSD: io1 | io2
      • Throughput Optimized HDD: st1
      • Cold HDD: sc1
      • Magnetic: standard

      Throughput Optimized HDD ( st1 ) and Cold HDD ( sc1 ) volumes can't be used as boot volumes.

      For more information, see Amazon EBS volume types in the Amazon EBS User Guide .

      Default: gp2

      Returns:
      this
    • build

      @Stability(Stable) public CfnVolumeProps build()
      Builds the configured instance.
      Specified by:
      build in interface software.amazon.jsii.Builder<CfnVolumeProps>
      Returns:
      a new instance of CfnVolumeProps
      Throws:
      NullPointerException - if any required attribute was not provided