All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.amazonaws.services.ec2.model.EbsBlockDevice Maven / Gradle / Ivy

Go to download

The AWS SDK for Java with support for OSGi. The AWS SDK for Java provides Java APIs for building software on AWS' cost-effective, scalable, and reliable infrastructure products. The AWS Java SDK allows developers to code against APIs for all of Amazon's infrastructure web services (Amazon S3, Amazon EC2, Amazon SQS, Amazon Relational Database Service, Amazon AutoScaling, etc).

There is a newer version: 1.11.60
Show newest version
/*
 * Copyright 2011-2016 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;

/**
 * 

* Describes a block device for an EBS volume. *

*/ public class EbsBlockDevice implements Serializable, Cloneable { /** *

* The ID of the snapshot. *

*/ private String snapshotId; /** *

* The size of the volume, in GiB. *

*

* Constraints: 1-16384 for General Purpose SSD (gp2), 4-16384 * for Provisioned IOPS SSD (io1), 500-16384 for Throughput * Optimized HDD (st1), 500-16384 for Cold HDD ( * sc1), and 1-1024 for Magnetic (standard) * volumes. If you specify a snapshot, the volume size must be equal to or * larger than the snapshot size. *

*

* Default: If you're creating the volume from a snapshot and don't specify * a volume size, the default is the snapshot size. *

*/ private Integer volumeSize; /** *

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

*/ private Boolean deleteOnTermination; /** *

* The volume type: gp2, io1, st1, * sc1, or standard. *

*

* Default: standard *

*/ private String volumeType; /** *

* The number of I/O operations per second (IOPS) that the volume supports. * For io1, this represents the number of IOPS that are * provisioned for the volume. For gp2, this represents the * baseline performance of the volume and the rate at which the volume * accumulates I/O credits for bursting. For more information about General * Purpose SSD baseline performance, I/O credits, and bursting, see Amazon EBS Volume Types in the Amazon Elastic Compute Cloud User * Guide. *

*

* Constraint: Range is 100-20000 IOPS for io1 volumes and * 100-10000 IOPS for gp2 volumes. *

*

* Condition: This parameter is required for requests to create * io1 volumes; it is not used in requests to create * gp2, st1, sc1, or * standard volumes. *

*/ private Integer iops; /** *

* Indicates whether the EBS volume is encrypted. Encrypted Amazon EBS * volumes may only be attached to instances that support Amazon EBS * encryption. *

*/ private Boolean encrypted; /** *

* 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 EbsBlockDevice withSnapshotId(String snapshotId) { setSnapshotId(snapshotId); return this; } /** *

* The size of the volume, in GiB. *

*

* Constraints: 1-16384 for General Purpose SSD (gp2), 4-16384 * for Provisioned IOPS SSD (io1), 500-16384 for Throughput * Optimized HDD (st1), 500-16384 for Cold HDD ( * sc1), and 1-1024 for Magnetic (standard) * volumes. If you specify a snapshot, the volume size must be equal to or * larger than the snapshot size. *

*

* Default: If you're creating the volume from a snapshot and don't specify * a volume size, the default is the snapshot size. *

* * @param volumeSize * The size of the volume, in GiB.

*

* Constraints: 1-16384 for General Purpose SSD (gp2), * 4-16384 for Provisioned IOPS SSD (io1), 500-16384 for * Throughput Optimized HDD (st1), 500-16384 for Cold * HDD (sc1), and 1-1024 for Magnetic ( * standard) volumes. If you specify a snapshot, the * volume size must be equal to or larger than the snapshot size. *

*

* Default: If you're creating the volume from a snapshot and don't * specify a volume size, the default is the snapshot size. */ public void setVolumeSize(Integer volumeSize) { this.volumeSize = volumeSize; } /** *

* The size of the volume, in GiB. *

*

* Constraints: 1-16384 for General Purpose SSD (gp2), 4-16384 * for Provisioned IOPS SSD (io1), 500-16384 for Throughput * Optimized HDD (st1), 500-16384 for Cold HDD ( * sc1), and 1-1024 for Magnetic (standard) * volumes. If you specify a snapshot, the volume size must be equal to or * larger than the snapshot size. *

*

* Default: If you're creating the volume from a snapshot and don't specify * a volume size, the default is the snapshot size. *

* * @return The size of the volume, in GiB.

*

* Constraints: 1-16384 for General Purpose SSD (gp2), * 4-16384 for Provisioned IOPS SSD (io1), 500-16384 * for Throughput Optimized HDD (st1), 500-16384 for * Cold HDD (sc1), and 1-1024 for Magnetic ( * standard) volumes. If you specify a snapshot, the * volume size must be equal to or larger than the snapshot size. *

*

* Default: If you're creating the volume from a snapshot and don't * specify a volume size, the default is the snapshot size. */ public Integer getVolumeSize() { return this.volumeSize; } /** *

* The size of the volume, in GiB. *

*

* Constraints: 1-16384 for General Purpose SSD (gp2), 4-16384 * for Provisioned IOPS SSD (io1), 500-16384 for Throughput * Optimized HDD (st1), 500-16384 for Cold HDD ( * sc1), and 1-1024 for Magnetic (standard) * volumes. If you specify a snapshot, the volume size must be equal to or * larger than the snapshot size. *

*

* Default: If you're creating the volume from a snapshot and don't specify * a volume size, the default is the snapshot size. *

* * @param volumeSize * The size of the volume, in GiB.

*

* Constraints: 1-16384 for General Purpose SSD (gp2), * 4-16384 for Provisioned IOPS SSD (io1), 500-16384 for * Throughput Optimized HDD (st1), 500-16384 for Cold * HDD (sc1), and 1-1024 for Magnetic ( * standard) volumes. If you specify a snapshot, the * volume size must be equal to or larger than the snapshot size. *

*

* Default: If you're creating the volume from a snapshot and don't * specify a volume size, the default is the snapshot size. * @return Returns a reference to this object so that method calls can be * chained together. */ public EbsBlockDevice withVolumeSize(Integer volumeSize) { setVolumeSize(volumeSize); return this; } /** *

* 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 EbsBlockDevice 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 volume type: gp2, io1, st1, * sc1, or standard. *

*

* Default: standard *

* * @param volumeType * The volume type: gp2, io1, * st1, sc1, or standard.

*

* Default: standard * @see VolumeType */ public void setVolumeType(String volumeType) { this.volumeType = volumeType; } /** *

* The volume type: gp2, io1, st1, * sc1, or standard. *

*

* Default: standard *

* * @return The volume type: gp2, io1, * st1, sc1, or standard.

*

* Default: standard * @see VolumeType */ public String getVolumeType() { return this.volumeType; } /** *

* The volume type: gp2, io1, st1, * sc1, or standard. *

*

* Default: standard *

* * @param volumeType * The volume type: gp2, io1, * st1, sc1, or standard.

*

* Default: standard * @return Returns a reference to this object so that method calls can be * chained together. * @see VolumeType */ public EbsBlockDevice withVolumeType(String volumeType) { setVolumeType(volumeType); return this; } /** *

* The volume type: gp2, io1, st1, * sc1, or standard. *

*

* Default: standard *

* * @param volumeType * The volume type: gp2, io1, * st1, sc1, or standard.

*

* Default: standard * @see VolumeType */ public void setVolumeType(VolumeType volumeType) { this.volumeType = volumeType.toString(); } /** *

* The volume type: gp2, io1, st1, * sc1, or standard. *

*

* Default: standard *

* * @param volumeType * The volume type: gp2, io1, * st1, sc1, or standard.

*

* Default: standard * @return Returns a reference to this object so that method calls can be * chained together. * @see VolumeType */ public EbsBlockDevice withVolumeType(VolumeType volumeType) { setVolumeType(volumeType); return this; } /** *

* The number of I/O operations per second (IOPS) that the volume supports. * For io1, this represents the number of IOPS that are * provisioned for the volume. For gp2, this represents the * baseline performance of the volume and the rate at which the volume * accumulates I/O credits for bursting. For more information about General * Purpose SSD baseline performance, I/O credits, and bursting, see Amazon EBS Volume Types in the Amazon Elastic Compute Cloud User * Guide. *

*

* Constraint: Range is 100-20000 IOPS for io1 volumes and * 100-10000 IOPS for gp2 volumes. *

*

* Condition: This parameter is required for requests to create * io1 volumes; it is not used in requests to create * gp2, st1, sc1, or * standard volumes. *

* * @param iops * The number of I/O operations per second (IOPS) that the volume * supports. For io1, this represents the number of IOPS * that are provisioned for the volume. For gp2, this * represents the baseline performance of the volume and the rate at * which the volume accumulates I/O credits for bursting. For more * information about General Purpose SSD baseline performance, I/O * credits, and bursting, see Amazon EBS Volume Types in the Amazon Elastic Compute * Cloud User Guide.

*

* Constraint: Range is 100-20000 IOPS for io1 volumes * and 100-10000 IOPS for gp2 volumes. *

*

* Condition: This parameter is required for requests to create * io1 volumes; it is not used in requests to create * gp2, st1, sc1, or * standard volumes. */ public void setIops(Integer iops) { this.iops = iops; } /** *

* The number of I/O operations per second (IOPS) that the volume supports. * For io1, this represents the number of IOPS that are * provisioned for the volume. For gp2, this represents the * baseline performance of the volume and the rate at which the volume * accumulates I/O credits for bursting. For more information about General * Purpose SSD baseline performance, I/O credits, and bursting, see Amazon EBS Volume Types in the Amazon Elastic Compute Cloud User * Guide. *

*

* Constraint: Range is 100-20000 IOPS for io1 volumes and * 100-10000 IOPS for gp2 volumes. *

*

* Condition: This parameter is required for requests to create * io1 volumes; it is not used in requests to create * gp2, st1, sc1, or * standard volumes. *

* * @return The number of I/O operations per second (IOPS) that the volume * supports. For io1, this represents the number of * IOPS that are provisioned for the volume. For gp2, * this represents the baseline performance of the volume and the * rate at which the volume accumulates I/O credits for bursting. * For more information about General Purpose SSD baseline * performance, I/O credits, and bursting, see Amazon EBS Volume Types in the Amazon Elastic Compute * Cloud User Guide.

*

* Constraint: Range is 100-20000 IOPS for io1 volumes * and 100-10000 IOPS for gp2 volumes. *

*

* Condition: This parameter is required for requests to create * io1 volumes; it is not used in requests to create * gp2, st1, sc1, or * standard volumes. */ public Integer getIops() { return this.iops; } /** *

* The number of I/O operations per second (IOPS) that the volume supports. * For io1, this represents the number of IOPS that are * provisioned for the volume. For gp2, this represents the * baseline performance of the volume and the rate at which the volume * accumulates I/O credits for bursting. For more information about General * Purpose SSD baseline performance, I/O credits, and bursting, see Amazon EBS Volume Types in the Amazon Elastic Compute Cloud User * Guide. *

*

* Constraint: Range is 100-20000 IOPS for io1 volumes and * 100-10000 IOPS for gp2 volumes. *

*

* Condition: This parameter is required for requests to create * io1 volumes; it is not used in requests to create * gp2, st1, sc1, or * standard volumes. *

* * @param iops * The number of I/O operations per second (IOPS) that the volume * supports. For io1, this represents the number of IOPS * that are provisioned for the volume. For gp2, this * represents the baseline performance of the volume and the rate at * which the volume accumulates I/O credits for bursting. For more * information about General Purpose SSD baseline performance, I/O * credits, and bursting, see Amazon EBS Volume Types in the Amazon Elastic Compute * Cloud User Guide.

*

* Constraint: Range is 100-20000 IOPS for io1 volumes * and 100-10000 IOPS for gp2 volumes. *

*

* Condition: This parameter is required for requests to create * io1 volumes; it is not used in requests to create * gp2, st1, sc1, or * standard volumes. * @return Returns a reference to this object so that method calls can be * chained together. */ public EbsBlockDevice withIops(Integer iops) { setIops(iops); return this; } /** *

* Indicates whether the EBS volume is encrypted. Encrypted Amazon EBS * volumes may only be attached to instances that support Amazon EBS * encryption. *

* * @param encrypted * Indicates whether the EBS volume is encrypted. Encrypted Amazon * EBS volumes may only be attached to instances that support Amazon * EBS encryption. */ public void setEncrypted(Boolean encrypted) { this.encrypted = encrypted; } /** *

* Indicates whether the EBS volume is encrypted. Encrypted Amazon EBS * volumes may only be attached to instances that support Amazon EBS * encryption. *

* * @return Indicates whether the EBS volume is encrypted. Encrypted Amazon * EBS volumes may only be attached to instances that support Amazon * EBS encryption. */ public Boolean getEncrypted() { return this.encrypted; } /** *

* Indicates whether the EBS volume is encrypted. Encrypted Amazon EBS * volumes may only be attached to instances that support Amazon EBS * encryption. *

* * @param encrypted * Indicates whether the EBS volume is encrypted. Encrypted Amazon * EBS volumes may only be attached to instances that support Amazon * EBS encryption. * @return Returns a reference to this object so that method calls can be * chained together. */ public EbsBlockDevice withEncrypted(Boolean encrypted) { setEncrypted(encrypted); return this; } /** *

* Indicates whether the EBS volume is encrypted. Encrypted Amazon EBS * volumes may only be attached to instances that support Amazon EBS * encryption. *

* * @return Indicates whether the EBS volume is encrypted. Encrypted Amazon * EBS volumes may only be attached to instances that support Amazon * EBS encryption. */ public Boolean isEncrypted() { return this.encrypted; } /** * Returns a string representation of this object; useful for testing and * debugging. * * @return A string representation of this object. * * @see java.lang.Object#toString() */ @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("{"); if (getSnapshotId() != null) sb.append("SnapshotId: " + getSnapshotId() + ","); if (getVolumeSize() != null) sb.append("VolumeSize: " + getVolumeSize() + ","); if (getDeleteOnTermination() != null) sb.append("DeleteOnTermination: " + getDeleteOnTermination() + ","); if (getVolumeType() != null) sb.append("VolumeType: " + getVolumeType() + ","); if (getIops() != null) sb.append("Iops: " + getIops() + ","); if (getEncrypted() != null) sb.append("Encrypted: " + getEncrypted()); sb.append("}"); return sb.toString(); } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (obj instanceof EbsBlockDevice == false) return false; EbsBlockDevice other = (EbsBlockDevice) obj; if (other.getSnapshotId() == null ^ this.getSnapshotId() == null) return false; if (other.getSnapshotId() != null && other.getSnapshotId().equals(this.getSnapshotId()) == false) return false; if (other.getVolumeSize() == null ^ this.getVolumeSize() == null) return false; if (other.getVolumeSize() != null && other.getVolumeSize().equals(this.getVolumeSize()) == false) return false; if (other.getDeleteOnTermination() == null ^ this.getDeleteOnTermination() == null) return false; if (other.getDeleteOnTermination() != null && other.getDeleteOnTermination().equals( this.getDeleteOnTermination()) == false) return false; if (other.getVolumeType() == null ^ this.getVolumeType() == null) return false; if (other.getVolumeType() != null && other.getVolumeType().equals(this.getVolumeType()) == false) return false; if (other.getIops() == null ^ this.getIops() == null) return false; if (other.getIops() != null && other.getIops().equals(this.getIops()) == false) return false; if (other.getEncrypted() == null ^ this.getEncrypted() == null) return false; if (other.getEncrypted() != null && other.getEncrypted().equals(this.getEncrypted()) == false) return false; return true; } @Override public int hashCode() { final int prime = 31; int hashCode = 1; hashCode = prime * hashCode + ((getSnapshotId() == null) ? 0 : getSnapshotId().hashCode()); hashCode = prime * hashCode + ((getVolumeSize() == null) ? 0 : getVolumeSize().hashCode()); hashCode = prime * hashCode + ((getDeleteOnTermination() == null) ? 0 : getDeleteOnTermination().hashCode()); hashCode = prime * hashCode + ((getVolumeType() == null) ? 0 : getVolumeType().hashCode()); hashCode = prime * hashCode + ((getIops() == null) ? 0 : getIops().hashCode()); hashCode = prime * hashCode + ((getEncrypted() == null) ? 0 : getEncrypted().hashCode()); return hashCode; } @Override public EbsBlockDevice clone() { try { return (EbsBlockDevice) super.clone(); } catch (CloneNotSupportedException e) { throw new IllegalStateException( "Got a CloneNotSupportedException from Object.clone() " + "even though we're Cloneable!", e); } } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy