/* * 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.ReleaseAddressRequestMarshaller; /** * Container for the parameters to the {@link com.amazonaws.services.ec2.AmazonEC2#releaseAddress(ReleaseAddressRequest) ReleaseAddress operation}. *
* Releases the specified Elastic IP address. *
*
* After releasing an Elastic IP address, it is released to the IP
* address pool and might be unavailable to you. Be sure to update your
* DNS records and any servers or devices that communicate with the
* address. If you attempt to release an Elastic IP address that you
* already released, you'll get an AuthFailure
error if the
* address is already allocated to another AWS account.
*
* [EC2-Classic, default VPC] Releasing an Elastic IP address * automatically disassociates it from any instance that it's associated * with. To disassociate an Elastic IP address without releasing it, use * DisassociateAddress. *
*
* [Nondefault VPC] You must use DisassociateAddress to disassociate the
* Elastic IP address before you try to release it. Otherwise, Amazon EC2
* returns an error (
* InvalidIPAddress.InUse
).
*
* Returns a reference to this object so that method calls can be chained together. * * @param publicIp [EC2-Classic] The Elastic IP address. Required for EC2-Classic. * * @return A reference to this updated object so that method calls can be chained * together. */ public ReleaseAddressRequest withPublicIp(String publicIp) { this.publicIp = publicIp; return this; } /** * [EC2-VPC] The allocation ID. Required for EC2-VPC. * * @return [EC2-VPC] The allocation ID. Required for EC2-VPC. */ public String getAllocationId() { return allocationId; } /** * [EC2-VPC] The allocation ID. Required for EC2-VPC. * * @param allocationId [EC2-VPC] The allocation ID. Required for EC2-VPC. */ public void setAllocationId(String allocationId) { this.allocationId = allocationId; } /** * [EC2-VPC] The allocation ID. Required for EC2-VPC. *
* Returns a reference to this object so that method calls can be chained together.
*
* @param allocationId [EC2-VPC] The allocation ID. Required for EC2-VPC.
*
* @return A reference to this updated object so that method calls can be chained
* together.
*/
public ReleaseAddressRequest withAllocationId(String allocationId) {
this.allocationId = allocationId;
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