Class VolumeProps.Builder

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

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

    • Builder

      public Builder()
  • Method Details

    • availabilityZone

      @Stability(Stable) public VolumeProps.Builder availabilityZone(String availabilityZone)
      Parameters:
      availabilityZone - The Availability Zone in which to create the volume. This parameter is required.
      Returns:
      this
    • autoEnableIo

      @Stability(Stable) public VolumeProps.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
    • enableMultiAttach

      @Stability(Stable) public VolumeProps.Builder enableMultiAttach(Boolean enableMultiAttach)
      Parameters:
      enableMultiAttach - Indicates whether Amazon EBS Multi-Attach is enabled. See
      invalid @link
      {@link https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-volumes-multi.html#considerations|Considerations
      and limitations} for the constraints of multi-attach.
      Returns:
      this
    • encrypted

      @Stability(Stable) public VolumeProps.Builder encrypted(Boolean encrypted)
      Sets the value of VolumeProps.getEncrypted()
      Parameters:
      encrypted - Specifies whether the volume should be encrypted. The effect of setting the encryption state to true depends on the volume origin (new or from a snapshot), starting encryption state, ownership, and whether encryption by default is enabled. For more information, see
      invalid @link
      {@link https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#encryption-by-default|Encryption
      by Default} in the Amazon Elastic Compute Cloud User Guide. Encrypted Amazon EBS volumes must be attached to instances that support Amazon EBS encryption. For more information, see
      invalid @link
      {@link https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#EBSEncryption_supported_instances|Supported
      Instance Types.}
      Returns:
      this
    • encryptionKey

      @Stability(Stable) public VolumeProps.Builder encryptionKey(IKey encryptionKey)
      Parameters:
      encryptionKey - The customer-managed encryption key that is used to encrypt the Volume. The encrypted property must be true if this is provided. Note: If using an
      invalid @link
      {@link aws-kms.IKey
      } created from a
      invalid @link
      {@link aws-kms.Key.fromKeyArn()
      } here, then the KMS key **must** have the following in its Key policy; otherwise, the Volume will fail to create. ``` { "Effect": "Allow", "Principal": { "AWS": " ex: arn:aws:iam::00000000000:root" }, "Resource": "*", "Action": [ "kms:DescribeKey", "kms:GenerateDataKeyWithoutPlainText", ], "Condition": { "StringEquals": { "kms:ViaService": "ec2..amazonaws.com", (eg: ec2.us-east-1.amazonaws.com) "kms:CallerAccount": "0000000000" (your account ID) } } } ```
      Returns:
      this
    • iops

      @Stability(Stable) public VolumeProps.Builder iops(Number iops)
      Sets the value of VolumeProps.getIops()
      Parameters:
      iops - The number of I/O operations per second (IOPS) to provision for the volume. The maximum ratio is 50 IOPS/GiB for PROVISIONED_IOPS_SSD, and 500 IOPS/GiB for both PROVISIONED_IOPS_SSD_IO2 and GENERAL_PURPOSE_SSD_GP3. See
      invalid @link
      {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ebs-volume.html
      } for more information. This parameter is valid only for PROVISIONED_IOPS_SSD, PROVISIONED_IOPS_SSD_IO2 and GENERAL_PURPOSE_SSD_GP3 volumes.
      Returns:
      this
    • removalPolicy

      @Stability(Stable) public VolumeProps.Builder removalPolicy(RemovalPolicy removalPolicy)
      Parameters:
      removalPolicy - Policy to apply when the volume is removed from the stack.
      Returns:
      this
    • size

      @Stability(Stable) public VolumeProps.Builder size(Size size)
      Sets the value of VolumeProps.getSize()
      Parameters:
      size - The size of the volume, in GiBs. You must specify either a snapshot ID or a volume size. See
      invalid @link
      {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ebs-volume.html
      } for details on the allowable size for each type of volume.
      Returns:
      this
    • snapshotId

      @Stability(Stable) public VolumeProps.Builder snapshotId(String snapshotId)
      Sets the value of VolumeProps.getSnapshotId()
      Parameters:
      snapshotId - The snapshot from which to create the volume. You must specify either a snapshot ID or a volume size.
      Returns:
      this
    • volumeName

      @Stability(Stable) public VolumeProps.Builder volumeName(String volumeName)
      Sets the value of VolumeProps.getVolumeName()
      Parameters:
      volumeName - The value of the physicalName property of this resource.
      Returns:
      this
    • volumeType

      @Stability(Stable) public VolumeProps.Builder volumeType(EbsDeviceVolumeType volumeType)
      Sets the value of VolumeProps.getVolumeType()
      Parameters:
      volumeType - The type of the volume;. what type of storage to use to form the EBS Volume.
      Returns:
      this
    • build

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