/* * Copyright 2010-2018 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 com.amazonaws.AmazonWebServiceRequest; import com.amazonaws.Request; import com.amazonaws.services.ec2.model.transform.AttachVolumeRequestMarshaller; /** * Container for the parameters to the {@link com.amazonaws.services.ec2.AmazonEC2#attachVolume(AttachVolumeRequest) AttachVolume operation}. *
* Attaches an EBS volume to a running or stopped instance and exposes it * to the instance with the specified device name. *
** Encrypted EBS volumes may only be attached to instances that support * Amazon EBS encryption. For more information, see * Amazon EBS Encryption * in the Amazon Elastic Compute Cloud User Guide . *
** For a list of supported device names, see * Attaching an EBS Volume to an Instance . Any device names that aren't reserved for instance store volumes can be used for EBS volumes. For more information, see Amazon EC2 Instance Store * in the Amazon Elastic Compute Cloud User Guide . *
** If a volume has an AWS Marketplace product code: *
* ** The volume can be attached only to a stopped instance. *
** AWS Marketplace product codes are copied from the volume to the * instance. *
** You must be subscribed to the product. *
** The instance type and operating system of the instance must support * the product. For example, you can't detach a volume from a Windows * instance and attach it to a Linux instance. *
** For an overview of the AWS Marketplace, see * Introducing AWS Marketplace * . *
** For more information about EBS volumes, see * Attaching Amazon EBS Volumes * in the Amazon Elastic Compute Cloud User Guide . *
* * @see com.amazonaws.services.ec2.AmazonEC2#attachVolume(AttachVolumeRequest) */ public class AttachVolumeRequest extends AmazonWebServiceRequest implements Serializable, DryRunSupportedRequest/dev/sdh
or xvdh
).
*/
private String device;
/**
* Default constructor for a new AttachVolumeRequest object. Callers should use the
* setter or fluent setter (with...) methods to initialize this object after creating it.
*/
public AttachVolumeRequest() {}
/**
* Constructs a new AttachVolumeRequest object.
* Callers should use the setter or fluent setter (with...) methods to
* initialize any additional object members.
*
* @param volumeId The ID of the EBS volume. The volume and instance must
* be within the same Availability Zone.
* @param instanceId The ID of the instance.
* @param device The device name to expose to the instance (for example,
* /dev/sdh
or xvdh
).
*/
public AttachVolumeRequest(String volumeId, String instanceId, String device) {
setVolumeId(volumeId);
setInstanceId(instanceId);
setDevice(device);
}
/**
* The ID of the EBS volume. The volume and instance must be within the
* same Availability Zone.
*
* @return The ID of the EBS volume. The volume and instance must be within the
* same Availability Zone.
*/
public String getVolumeId() {
return volumeId;
}
/**
* The ID of the EBS volume. The volume and instance must be within the
* same Availability Zone.
*
* @param volumeId The ID of the EBS volume. The volume and instance must be within the
* same Availability Zone.
*/
public void setVolumeId(String volumeId) {
this.volumeId = volumeId;
}
/**
* The ID of the EBS volume. The volume and instance must be within the
* same Availability Zone.
* * Returns a reference to this object so that method calls can be chained together. * * @param volumeId The ID of the EBS volume. The volume and instance must be within the * same Availability Zone. * * @return A reference to this updated object so that method calls can be chained * together. */ public AttachVolumeRequest withVolumeId(String volumeId) { this.volumeId = volumeId; return this; } /** * The ID of the instance. * * @return The ID of the instance. */ public String getInstanceId() { return instanceId; } /** * The ID of the instance. * * @param instanceId The ID of the instance. */ public void setInstanceId(String instanceId) { this.instanceId = instanceId; } /** * The ID of the instance. *
* Returns a reference to this object so that method calls can be chained together.
*
* @param instanceId The ID of the instance.
*
* @return A reference to this updated object so that method calls can be chained
* together.
*/
public AttachVolumeRequest withInstanceId(String instanceId) {
this.instanceId = instanceId;
return this;
}
/**
* The device name to expose to the instance (for example,
* /dev/sdh
or xvdh
).
*
* @return The device name to expose to the instance (for example,
* /dev/sdh
or xvdh
).
*/
public String getDevice() {
return device;
}
/**
* The device name to expose to the instance (for example,
* /dev/sdh
or xvdh
).
*
* @param device The device name to expose to the instance (for example,
* /dev/sdh
or xvdh
).
*/
public void setDevice(String device) {
this.device = device;
}
/**
* The device name to expose to the instance (for example,
* /dev/sdh
or xvdh
).
*
* Returns a reference to this object so that method calls can be chained together.
*
* @param device The device name to expose to the instance (for example,
* /dev/sdh
or xvdh
).
*
* @return A reference to this updated object so that method calls can be chained
* together.
*/
public AttachVolumeRequest withDevice(String device) {
this.device = device;
return this;
}
/**
* This method is intended for internal use only.
* Returns the marshaled request configured with additional parameters to
* enable operation dry-run.
*/
@Override
public Request