public static final class VolumeProps.Builder
extends java.lang.Object
VolumeProps
Constructor and Description |
---|
Builder() |
public VolumeProps.Builder availabilityZone(java.lang.String availabilityZone)
VolumeProps.getAvailabilityZone()
availabilityZone
- The Availability Zone in which to create the volume. This parameter is required.this
public VolumeProps.Builder autoEnableIo(java.lang.Boolean autoEnableIo)
VolumeProps.getAutoEnableIo()
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.this
public VolumeProps.Builder enableMultiAttach(java.lang.Boolean enableMultiAttach)
VolumeProps.getEnableMultiAttach()
enableMultiAttach
- Indicates whether Amazon EBS Multi-Attach is enabled.
See {@link https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-volumes-multi.html#considerations|Considerations and limitations}
for the constraints of multi-attach.this
public VolumeProps.Builder encrypted(java.lang.Boolean encrypted)
VolumeProps.getEncrypted()
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 {@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 {@link https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#EBSEncryption_supported_instances|Supported Instance Types.}
this
public VolumeProps.Builder encryptionKey(IKey encryptionKey)
VolumeProps.getEncryptionKey()
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 {@link aws-kms.IKey} created from a {@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": "<arn for your account-user> ex: arn:aws:iam::00000000000:root" }, "Resource": "*", "Action": [ "kms:DescribeKey", "kms:GenerateDataKeyWithoutPlainText", ], "Condition": { "StringEquals": { "kms:ViaService": "ec2.<Region>.amazonaws.com", (eg: ec2.us-east-1.amazonaws.com) "kms:CallerAccount": "0000000000" (your account ID) } } }
this
public VolumeProps.Builder iops(java.lang.Number iops)
VolumeProps.getIops()
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 {@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.
this
public VolumeProps.Builder removalPolicy(RemovalPolicy removalPolicy)
VolumeProps.getRemovalPolicy()
removalPolicy
- Policy to apply when the volume is removed from the stack.this
public VolumeProps.Builder size(Size size)
VolumeProps.getSize()
size
- The size of the volume, in GiBs.
You must specify either a snapshot ID or a volume size.
See {@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.this
public VolumeProps.Builder snapshotId(java.lang.String snapshotId)
VolumeProps.getSnapshotId()
snapshotId
- The snapshot from which to create the volume.
You must specify either a snapshot ID or a volume size.this
public VolumeProps.Builder volumeName(java.lang.String volumeName)
VolumeProps.getVolumeName()
volumeName
- The value of the physicalName property of this resource.this
public VolumeProps.Builder volumeType(EbsDeviceVolumeType volumeType)
VolumeProps.getVolumeType()
volumeType
- The type of the volume;.
what type of storage to use to form the EBS Volume.this
public VolumeProps build()
VolumeProps
java.lang.NullPointerException
- if any required attribute was not provided