/* * Copyright 2018-2023 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ package com.amazonaws.services.ec2.model; import java.io.Serializable; import javax.annotation.Generated; /** *

* The parameters for a block device for an EBS volume. *

* * @see AWS API Documentation */ @Generated("com.amazonaws:aws-java-sdk-code-generator") public class LaunchTemplateEbsBlockDeviceRequest implements Serializable, Cloneable { /** *

* Indicates whether the EBS volume is encrypted. Encrypted volumes can only be attached to instances that support * Amazon EBS encryption. If you are creating a volume from a snapshot, you can't specify an encryption value. *

*/ private Boolean encrypted; /** *

* Indicates whether the EBS volume is deleted on instance termination. *

*/ private Boolean deleteOnTermination; /** *

* The number of I/O operations per second (IOPS). For gp3, io1, and io2 * volumes, this represents the number of IOPS that are provisioned for the volume. For gp2 volumes, * this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits * for bursting. *

*

* The following are the supported values for each volume type: *

* *

* For io1 and io2 volumes, we guarantee 64,000 IOPS only for Instances * built on the Nitro System. Other instance families guarantee performance up to 32,000 IOPS. *

*

* This parameter is supported for io1, io2, and gp3 volumes only. This * parameter is not supported for gp2, st1, sc1, or standard * volumes. *

*/ private Integer iops; /** *

* The ARN of the symmetric Key Management Service (KMS) CMK used for encryption. *

*/ private String kmsKeyId; /** *

* The ID of the snapshot. *

*/ private String snapshotId; /** *

* The size of the volume, in GiBs. You must specify either a snapshot ID or a volume size. The following are the * supported volumes sizes for each volume type: *

* */ private Integer volumeSize; /** *

* The volume type. For more information, see Amazon EBS volume types in the * Amazon Elastic Compute Cloud User Guide. *

*/ private String volumeType; /** *

* The throughput to provision for a gp3 volume, with a maximum of 1,000 MiB/s. *

*

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

*/ private Integer throughput; /** *

* Indicates whether the EBS volume is encrypted. Encrypted volumes can only be attached to instances that support * Amazon EBS encryption. If you are creating a volume from a snapshot, you can't specify an encryption value. *

* * @param encrypted * Indicates whether the EBS volume is encrypted. Encrypted volumes can only be attached to instances that * support Amazon EBS encryption. If you are creating a volume from a snapshot, you can't specify an * encryption value. */ public void setEncrypted(Boolean encrypted) { this.encrypted = encrypted; } /** *

* Indicates whether the EBS volume is encrypted. Encrypted volumes can only be attached to instances that support * Amazon EBS encryption. If you are creating a volume from a snapshot, you can't specify an encryption value. *

* * @return Indicates whether the EBS volume is encrypted. Encrypted volumes can only be attached to instances that * support Amazon EBS encryption. If you are creating a volume from a snapshot, you can't specify an * encryption value. */ public Boolean getEncrypted() { return this.encrypted; } /** *

* Indicates whether the EBS volume is encrypted. Encrypted volumes can only be attached to instances that support * Amazon EBS encryption. If you are creating a volume from a snapshot, you can't specify an encryption value. *

* * @param encrypted * Indicates whether the EBS volume is encrypted. Encrypted volumes can only be attached to instances that * support Amazon EBS encryption. If you are creating a volume from a snapshot, you can't specify an * encryption value. * @return Returns a reference to this object so that method calls can be chained together. */ public LaunchTemplateEbsBlockDeviceRequest withEncrypted(Boolean encrypted) { setEncrypted(encrypted); return this; } /** *

* Indicates whether the EBS volume is encrypted. Encrypted volumes can only be attached to instances that support * Amazon EBS encryption. If you are creating a volume from a snapshot, you can't specify an encryption value. *

* * @return Indicates whether the EBS volume is encrypted. Encrypted volumes can only be attached to instances that * support Amazon EBS encryption. If you are creating a volume from a snapshot, you can't specify an * encryption value. */ public Boolean isEncrypted() { return this.encrypted; } /** *

* Indicates whether the EBS volume is deleted on instance termination. *

* * @param deleteOnTermination * Indicates whether the EBS volume is deleted on instance termination. */ public void setDeleteOnTermination(Boolean deleteOnTermination) { this.deleteOnTermination = deleteOnTermination; } /** *

* Indicates whether the EBS volume is deleted on instance termination. *

* * @return Indicates whether the EBS volume is deleted on instance termination. */ public Boolean getDeleteOnTermination() { return this.deleteOnTermination; } /** *

* Indicates whether the EBS volume is deleted on instance termination. *

* * @param deleteOnTermination * Indicates whether the EBS volume is deleted on instance termination. * @return Returns a reference to this object so that method calls can be chained together. */ public LaunchTemplateEbsBlockDeviceRequest withDeleteOnTermination(Boolean deleteOnTermination) { setDeleteOnTermination(deleteOnTermination); return this; } /** *

* Indicates whether the EBS volume is deleted on instance termination. *

* * @return Indicates whether the EBS volume is deleted on instance termination. */ public Boolean isDeleteOnTermination() { return this.deleteOnTermination; } /** *

* The number of I/O operations per second (IOPS). For gp3, io1, and io2 * volumes, this represents the number of IOPS that are provisioned for the volume. For gp2 volumes, * this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits * for bursting. *

*

* The following are the supported values for each volume type: *

* *

* For io1 and io2 volumes, we guarantee 64,000 IOPS only for Instances * built on the Nitro System. Other instance families guarantee performance up to 32,000 IOPS. *

*

* This parameter is supported for io1, io2, and gp3 volumes only. This * parameter is not supported for gp2, st1, sc1, or standard * volumes. *

* * @param iops * The number of I/O operations per second (IOPS). For gp3, io1, and * io2 volumes, this represents the number of IOPS that are provisioned for the volume. For * gp2 volumes, this represents the baseline performance of the volume and the rate at which the * volume accumulates I/O credits for bursting.

*

* The following are the supported values for each volume type: *

* *

* For io1 and io2 volumes, we guarantee 64,000 IOPS only for Instances built on the Nitro System. Other instance families guarantee performance up to 32,000 IOPS. *

*

* This parameter is supported for io1, io2, and gp3 volumes only. * This parameter is not supported for gp2, st1, sc1, or * standard volumes. */ public void setIops(Integer iops) { this.iops = iops; } /** *

* The number of I/O operations per second (IOPS). For gp3, io1, and io2 * volumes, this represents the number of IOPS that are provisioned for the volume. For gp2 volumes, * this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits * for bursting. *

*

* The following are the supported values for each volume type: *

* *

* For io1 and io2 volumes, we guarantee 64,000 IOPS only for Instances * built on the Nitro System. Other instance families guarantee performance up to 32,000 IOPS. *

*

* This parameter is supported for io1, io2, and gp3 volumes only. This * parameter is not supported for gp2, st1, sc1, or standard * volumes. *

* * @return The number of I/O operations per second (IOPS). For gp3, io1, and * io2 volumes, this represents the number of IOPS that are provisioned for the volume. For * gp2 volumes, this represents the baseline performance of the volume and the rate at which * the volume accumulates I/O credits for bursting.

*

* The following are the supported values for each volume type: *

* *

* For io1 and io2 volumes, we guarantee 64,000 IOPS only for Instances built on the Nitro System. Other instance families guarantee performance up to 32,000 * IOPS. *

*

* This parameter is supported for io1, io2, and gp3 volumes only. * This parameter is not supported for gp2, st1, sc1, or * standard volumes. */ public Integer getIops() { return this.iops; } /** *

* The number of I/O operations per second (IOPS). For gp3, io1, and io2 * volumes, this represents the number of IOPS that are provisioned for the volume. For gp2 volumes, * this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits * for bursting. *

*

* The following are the supported values for each volume type: *

* *

* For io1 and io2 volumes, we guarantee 64,000 IOPS only for Instances * built on the Nitro System. Other instance families guarantee performance up to 32,000 IOPS. *

*

* This parameter is supported for io1, io2, and gp3 volumes only. This * parameter is not supported for gp2, st1, sc1, or standard * volumes. *

* * @param iops * The number of I/O operations per second (IOPS). For gp3, io1, and * io2 volumes, this represents the number of IOPS that are provisioned for the volume. For * gp2 volumes, this represents the baseline performance of the volume and the rate at which the * volume accumulates I/O credits for bursting.

*

* The following are the supported values for each volume type: *

* *

* For io1 and io2 volumes, we guarantee 64,000 IOPS only for Instances built on the Nitro System. Other instance families guarantee performance up to 32,000 IOPS. *

*

* This parameter is supported for io1, io2, and gp3 volumes only. * This parameter is not supported for gp2, st1, sc1, or * standard volumes. * @return Returns a reference to this object so that method calls can be chained together. */ public LaunchTemplateEbsBlockDeviceRequest withIops(Integer iops) { setIops(iops); return this; } /** *

* The ARN of the symmetric Key Management Service (KMS) CMK used for encryption. *

* * @param kmsKeyId * The ARN of the symmetric Key Management Service (KMS) CMK used for encryption. */ public void setKmsKeyId(String kmsKeyId) { this.kmsKeyId = kmsKeyId; } /** *

* The ARN of the symmetric Key Management Service (KMS) CMK used for encryption. *

* * @return The ARN of the symmetric Key Management Service (KMS) CMK used for encryption. */ public String getKmsKeyId() { return this.kmsKeyId; } /** *

* The ARN of the symmetric Key Management Service (KMS) CMK used for encryption. *

* * @param kmsKeyId * The ARN of the symmetric Key Management Service (KMS) CMK used for encryption. * @return Returns a reference to this object so that method calls can be chained together. */ public LaunchTemplateEbsBlockDeviceRequest withKmsKeyId(String kmsKeyId) { setKmsKeyId(kmsKeyId); return this; } /** *

* The ID of the snapshot. *

* * @param snapshotId * The ID of the snapshot. */ public void setSnapshotId(String snapshotId) { this.snapshotId = snapshotId; } /** *

* The ID of the snapshot. *

* * @return The ID of the snapshot. */ public String getSnapshotId() { return this.snapshotId; } /** *

* The ID of the snapshot. *

* * @param snapshotId * The ID of the snapshot. * @return Returns a reference to this object so that method calls can be chained together. */ public LaunchTemplateEbsBlockDeviceRequest withSnapshotId(String snapshotId) { setSnapshotId(snapshotId); return this; } /** *

* The size of the volume, in GiBs. You must specify either a snapshot ID or a volume size. The following are the * supported volumes sizes for each volume type: *

* * * @param volumeSize * The size of the volume, in GiBs. You must specify either a snapshot ID or a volume size. The following are * the supported volumes sizes for each volume type:

*