/*
* Copyright 2012-2017 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;
import org.w3c.dom.*;
import java.net.*;
import java.util.*;
import javax.annotation.Generated;
import org.apache.commons.logging.*;
import com.amazonaws.*;
import com.amazonaws.annotation.SdkInternalApi;
import com.amazonaws.auth.*;
import com.amazonaws.handlers.*;
import com.amazonaws.http.*;
import com.amazonaws.internal.*;
import com.amazonaws.internal.auth.*;
import com.amazonaws.metrics.*;
import com.amazonaws.regions.*;
import com.amazonaws.transform.*;
import com.amazonaws.util.*;
import com.amazonaws.protocol.json.*;
import com.amazonaws.util.AWSRequestMetrics.Field;
import com.amazonaws.annotation.ThreadSafe;
import com.amazonaws.client.AwsSyncClientParams;
import com.amazonaws.services.ec2.AmazonEC2ClientBuilder;
import com.amazonaws.services.ec2.waiters.AmazonEC2Waiters;
import com.amazonaws.AmazonServiceException;
import com.amazonaws.services.ec2.model.*;
import com.amazonaws.services.ec2.model.transform.*;
/**
* Client for accessing Amazon EC2. All service calls made using this client are blocking, and will not return until the
* service call completes.
* <p>
* <fullname>Amazon Elastic Compute Cloud</fullname>
* <p>
* Amazon Elastic Compute Cloud (Amazon EC2) provides resizable computing capacity in the Amazon Web Services (AWS)
* cloud. Using Amazon EC2 eliminates your need to invest in hardware up front, so you can develop and deploy
* applications faster.
* </p>
*/
@ThreadSafe
@Generated("com.amazonaws:aws-java-sdk-code-generator")
public class AmazonEC2Client extends AmazonWebServiceClient implements AmazonEC2 {
/** Provider for AWS credentials. */
private final AWSCredentialsProvider awsCredentialsProvider;
private static final Log log = LogFactory.getLog(AmazonEC2.class);
/** Default signing name for the service. */
private static final String DEFAULT_SIGNING_NAME = "ec2";
private volatile AmazonEC2Waiters waiters;
/** Client configuration factory providing ClientConfigurations tailored to this client */
protected static final ClientConfigurationFactory configFactory = new ClientConfigurationFactory();
/**
* List of exception unmarshallers for all modeled exceptions
*/
protected final List<Unmarshaller<AmazonServiceException, Node>> exceptionUnmarshallers = new ArrayList<Unmarshaller<AmazonServiceException, Node>>();
/**
* Constructs a new client to invoke service methods on Amazon EC2. A credentials provider chain will be used that
* searches for credentials in this order:
* <ul>
* <li>Environment Variables - AWS_ACCESS_KEY_ID and AWS_SECRET_KEY</li>
* <li>Java System Properties - aws.accessKeyId and aws.secretKey</li>
* <li>Instance profile credentials delivered through the Amazon EC2 metadata service</li>
* </ul>
*
* <p>
* All service calls made using this new client object are blocking, and will not return until the service call
* completes.
*
* @see DefaultAWSCredentialsProviderChain
* @deprecated use {@link AmazonEC2ClientBuilder#defaultClient()}
*/
@Deprecated
public AmazonEC2Client() {
this(DefaultAWSCredentialsProviderChain.getInstance(), configFactory.getConfig());
}
/**
* Constructs a new client to invoke service methods on Amazon EC2. A credentials provider chain will be used that
* searches for credentials in this order:
* <ul>
* <li>Environment Variables - AWS_ACCESS_KEY_ID and AWS_SECRET_KEY</li>
* <li>Java System Properties - aws.accessKeyId and aws.secretKey</li>
* <li>Instance profile credentials delivered through the Amazon EC2 metadata service</li>
* </ul>
*
* <p>
* All service calls made using this new client object are blocking, and will not return until the service call
* completes.
*
* @param clientConfiguration
* The client configuration options controlling how this client connects to Amazon EC2 (ex: proxy settings,
* retry counts, etc.).
*
* @see DefaultAWSCredentialsProviderChain
* @deprecated use {@link AmazonEC2ClientBuilder#withClientConfiguration(ClientConfiguration)}
*/
@Deprecated
public AmazonEC2Client(ClientConfiguration clientConfiguration) {
this(DefaultAWSCredentialsProviderChain.getInstance(), clientConfiguration);
}
/**
* Constructs a new client to invoke service methods on Amazon EC2 using the specified AWS account credentials.
*
* <p>
* All service calls made using this new client object are blocking, and will not return until the service call
* completes.
*
* @param awsCredentials
* The AWS credentials (access key ID and secret key) to use when authenticating with AWS services.
* @deprecated use {@link AmazonEC2ClientBuilder#withCredentials(AWSCredentialsProvider)} for example:
* {@code AmazonEC2ClientBuilder.standard().withCredentials(new AWSStaticCredentialsProvider(awsCredentials)).build();}
*/
@Deprecated
public AmazonEC2Client(AWSCredentials awsCredentials) {
this(awsCredentials, configFactory.getConfig());
}
/**
* Constructs a new client to invoke service methods on Amazon EC2 using the specified AWS account credentials and
* client configuration options.
*
* <p>
* All service calls made using this new client object are blocking, and will not return until the service call
* completes.
*
* @param awsCredentials
* The AWS credentials (access key ID and secret key) to use when authenticating with AWS services.
* @param clientConfiguration
* The client configuration options controlling how this client connects to Amazon EC2 (ex: proxy settings,
* retry counts, etc.).
* @deprecated use {@link AmazonEC2ClientBuilder#withCredentials(AWSCredentialsProvider)} and
* {@link AmazonEC2ClientBuilder#withClientConfiguration(ClientConfiguration)}
*/
@Deprecated
public AmazonEC2Client(AWSCredentials awsCredentials, ClientConfiguration clientConfiguration) {
super(clientConfiguration);
this.awsCredentialsProvider = new StaticCredentialsProvider(awsCredentials);
init();
}
/**
* Constructs a new client to invoke service methods on Amazon EC2 using the specified AWS account credentials
* provider.
*
* <p>
* All service calls made using this new client object are blocking, and will not return until the service call
* completes.
*
* @param awsCredentialsProvider
* The AWS credentials provider which will provide credentials to authenticate requests with AWS services.
* @deprecated use {@link AmazonEC2ClientBuilder#withCredentials(AWSCredentialsProvider)}
*/
@Deprecated
public AmazonEC2Client(AWSCredentialsProvider awsCredentialsProvider) {
this(awsCredentialsProvider, configFactory.getConfig());
}
/**
* Constructs a new client to invoke service methods on Amazon EC2 using the specified AWS account credentials
* provider and client configuration options.
*
* <p>
* All service calls made using this new client object are blocking, and will not return until the service call
* completes.
*
* @param awsCredentialsProvider
* The AWS credentials provider which will provide credentials to authenticate requests with AWS services.
* @param clientConfiguration
* The client configuration options controlling how this client connects to Amazon EC2 (ex: proxy settings,
* retry counts, etc.).
* @deprecated use {@link AmazonEC2ClientBuilder#withCredentials(AWSCredentialsProvider)} and
* {@link AmazonEC2ClientBuilder#withClientConfiguration(ClientConfiguration)}
*/
@Deprecated
public AmazonEC2Client(AWSCredentialsProvider awsCredentialsProvider, ClientConfiguration clientConfiguration) {
this(awsCredentialsProvider, clientConfiguration, null);
}
/**
* Constructs a new client to invoke service methods on Amazon EC2 using the specified AWS account credentials
* provider, client configuration options, and request metric collector.
*
* <p>
* All service calls made using this new client object are blocking, and will not return until the service call
* completes.
*
* @param awsCredentialsProvider
* The AWS credentials provider which will provide credentials to authenticate requests with AWS services.
* @param clientConfiguration
* The client configuration options controlling how this client connects to Amazon EC2 (ex: proxy settings,
* retry counts, etc.).
* @param requestMetricCollector
* optional request metric collector
* @deprecated use {@link AmazonEC2ClientBuilder#withCredentials(AWSCredentialsProvider)} and
* {@link AmazonEC2ClientBuilder#withClientConfiguration(ClientConfiguration)} and
* {@link AmazonEC2ClientBuilder#withMetricsCollector(RequestMetricCollector)}
*/
@Deprecated
public AmazonEC2Client(AWSCredentialsProvider awsCredentialsProvider, ClientConfiguration clientConfiguration, RequestMetricCollector requestMetricCollector) {
super(clientConfiguration, requestMetricCollector);
this.awsCredentialsProvider = awsCredentialsProvider;
init();
}
public static AmazonEC2ClientBuilder builder() {
return AmazonEC2ClientBuilder.standard();
}
/**
* Constructs a new client to invoke service methods on Amazon EC2 using the specified parameters.
*
* <p>
* All service calls made using this new client object are blocking, and will not return until the service call
* completes.
*
* @param clientParams
* Object providing client parameters.
*/
AmazonEC2Client(AwsSyncClientParams clientParams) {
super(clientParams);
this.awsCredentialsProvider = clientParams.getCredentialsProvider();
init();
}
private void init() {
exceptionUnmarshallers.add(new LegacyErrorUnmarshaller(com.amazonaws.services.ec2.model.AmazonEC2Exception.class));
setServiceNameIntern(DEFAULT_SIGNING_NAME);
setEndpointPrefix(ENDPOINT_PREFIX);
// calling this.setEndPoint(...) will also modify the signer accordingly
this.setEndpoint("https://ec2.us-east-1.amazonaws.com");
HandlerChainFactory chainFactory = new HandlerChainFactory();
requestHandler2s.addAll(chainFactory.newRequestHandlerChain("/com/amazonaws/services/ec2/request.handlers"));
requestHandler2s.addAll(chainFactory.newRequestHandler2Chain("/com/amazonaws/services/ec2/request.handler2s"));
requestHandler2s.addAll(chainFactory.getGlobalHandlers());
}
/**
* <p>
* Accepts the Convertible Reserved Instance exchange quote described in the
* <a>GetReservedInstancesExchangeQuote</a> call.
* </p>
*
* @param acceptReservedInstancesExchangeQuoteRequest
* Contains the parameters for accepting the quote.
* @return Result of the AcceptReservedInstancesExchangeQuote operation returned by the service.
* @sample AmazonEC2.AcceptReservedInstancesExchangeQuote
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AcceptReservedInstancesExchangeQuote"
* target="_top">AWS API Documentation</a>
*/
@Override
public AcceptReservedInstancesExchangeQuoteResult acceptReservedInstancesExchangeQuote(AcceptReservedInstancesExchangeQuoteRequest request) {
request = beforeClientExecution(request);
return executeAcceptReservedInstancesExchangeQuote(request);
}
@SdkInternalApi
final AcceptReservedInstancesExchangeQuoteResult executeAcceptReservedInstancesExchangeQuote(
AcceptReservedInstancesExchangeQuoteRequest acceptReservedInstancesExchangeQuoteRequest) {
ExecutionContext executionContext = createExecutionContext(acceptReservedInstancesExchangeQuoteRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<AcceptReservedInstancesExchangeQuoteRequest> request = null;
Response<AcceptReservedInstancesExchangeQuoteResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new AcceptReservedInstancesExchangeQuoteRequestMarshaller().marshall(super
.beforeMarshalling(acceptReservedInstancesExchangeQuoteRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<AcceptReservedInstancesExchangeQuoteResult> responseHandler = new StaxResponseHandler<AcceptReservedInstancesExchangeQuoteResult>(
new AcceptReservedInstancesExchangeQuoteResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Accept a VPC peering connection request. To accept a request, the VPC peering connection must be in the
* <code>pending-acceptance</code> state, and you must be the owner of the peer VPC. Use
* <a>DescribeVpcPeeringConnections</a> to view your outstanding VPC peering connection requests.
* </p>
*
* @param acceptVpcPeeringConnectionRequest
* Contains the parameters for AcceptVpcPeeringConnection.
* @return Result of the AcceptVpcPeeringConnection operation returned by the service.
* @sample AmazonEC2.AcceptVpcPeeringConnection
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AcceptVpcPeeringConnection" target="_top">AWS
* API Documentation</a>
*/
@Override
public AcceptVpcPeeringConnectionResult acceptVpcPeeringConnection(AcceptVpcPeeringConnectionRequest request) {
request = beforeClientExecution(request);
return executeAcceptVpcPeeringConnection(request);
}
@SdkInternalApi
final AcceptVpcPeeringConnectionResult executeAcceptVpcPeeringConnection(AcceptVpcPeeringConnectionRequest acceptVpcPeeringConnectionRequest) {
ExecutionContext executionContext = createExecutionContext(acceptVpcPeeringConnectionRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<AcceptVpcPeeringConnectionRequest> request = null;
Response<AcceptVpcPeeringConnectionResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new AcceptVpcPeeringConnectionRequestMarshaller().marshall(super.beforeMarshalling(acceptVpcPeeringConnectionRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<AcceptVpcPeeringConnectionResult> responseHandler = new StaxResponseHandler<AcceptVpcPeeringConnectionResult>(
new AcceptVpcPeeringConnectionResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
@Override
public AcceptVpcPeeringConnectionResult acceptVpcPeeringConnection() {
return acceptVpcPeeringConnection(new AcceptVpcPeeringConnectionRequest());
}
/**
* <p>
* Acquires an Elastic IP address.
* </p>
* <p>
* An Elastic IP address is for use either in the EC2-Classic platform or in a VPC. For more information, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html">Elastic IP Addresses</a>
* in the <i>Amazon Elastic Compute Cloud User Guide</i>.
* </p>
*
* @param allocateAddressRequest
* Contains the parameters for AllocateAddress.
* @return Result of the AllocateAddress operation returned by the service.
* @sample AmazonEC2.AllocateAddress
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AllocateAddress" target="_top">AWS API
* Documentation</a>
*/
@Override
public AllocateAddressResult allocateAddress(AllocateAddressRequest request) {
request = beforeClientExecution(request);
return executeAllocateAddress(request);
}
@SdkInternalApi
final AllocateAddressResult executeAllocateAddress(AllocateAddressRequest allocateAddressRequest) {
ExecutionContext executionContext = createExecutionContext(allocateAddressRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<AllocateAddressRequest> request = null;
Response<AllocateAddressResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new AllocateAddressRequestMarshaller().marshall(super.beforeMarshalling(allocateAddressRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<AllocateAddressResult> responseHandler = new StaxResponseHandler<AllocateAddressResult>(
new AllocateAddressResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
@Override
public AllocateAddressResult allocateAddress() {
return allocateAddress(new AllocateAddressRequest());
}
/**
* <p>
* Allocates a Dedicated Host to your account. At minimum you need to specify the instance size type, Availability
* Zone, and quantity of hosts you want to allocate.
* </p>
*
* @param allocateHostsRequest
* Contains the parameters for AllocateHosts.
* @return Result of the AllocateHosts operation returned by the service.
* @sample AmazonEC2.AllocateHosts
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AllocateHosts" target="_top">AWS API
* Documentation</a>
*/
@Override
public AllocateHostsResult allocateHosts(AllocateHostsRequest request) {
request = beforeClientExecution(request);
return executeAllocateHosts(request);
}
@SdkInternalApi
final AllocateHostsResult executeAllocateHosts(AllocateHostsRequest allocateHostsRequest) {
ExecutionContext executionContext = createExecutionContext(allocateHostsRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<AllocateHostsRequest> request = null;
Response<AllocateHostsResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new AllocateHostsRequestMarshaller().marshall(super.beforeMarshalling(allocateHostsRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<AllocateHostsResult> responseHandler = new StaxResponseHandler<AllocateHostsResult>(new AllocateHostsResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Assigns one or more IPv6 addresses to the specified network interface. You can specify one or more specific IPv6
* addresses, or you can specify the number of IPv6 addresses to be automatically assigned from within the subnet's
* IPv6 CIDR block range. You can assign as many IPv6 addresses to a network interface as you can assign private
* IPv4 addresses, and the limit varies per instance type. For information, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html#AvailableIpPerENI">IP Addresses Per
* Network Interface Per Instance Type</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.
* </p>
*
* @param assignIpv6AddressesRequest
* @return Result of the AssignIpv6Addresses operation returned by the service.
* @sample AmazonEC2.AssignIpv6Addresses
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AssignIpv6Addresses" target="_top">AWS API
* Documentation</a>
*/
@Override
public AssignIpv6AddressesResult assignIpv6Addresses(AssignIpv6AddressesRequest request) {
request = beforeClientExecution(request);
return executeAssignIpv6Addresses(request);
}
@SdkInternalApi
final AssignIpv6AddressesResult executeAssignIpv6Addresses(AssignIpv6AddressesRequest assignIpv6AddressesRequest) {
ExecutionContext executionContext = createExecutionContext(assignIpv6AddressesRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<AssignIpv6AddressesRequest> request = null;
Response<AssignIpv6AddressesResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new AssignIpv6AddressesRequestMarshaller().marshall(super.beforeMarshalling(assignIpv6AddressesRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<AssignIpv6AddressesResult> responseHandler = new StaxResponseHandler<AssignIpv6AddressesResult>(
new AssignIpv6AddressesResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Assigns one or more secondary private IP addresses to the specified network interface. You can specify one or
* more specific secondary IP addresses, or you can specify the number of secondary IP addresses to be automatically
* assigned within the subnet's CIDR block range. The number of secondary IP addresses that you can assign to an
* instance varies by instance type. For information about instance types, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html">Instance Types</a> in the <i>Amazon
* Elastic Compute Cloud User Guide</i>. For more information about Elastic IP addresses, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html">Elastic IP Addresses</a>
* in the <i>Amazon Elastic Compute Cloud User Guide</i>.
* </p>
* <p>
* AssignPrivateIpAddresses is available only in EC2-VPC.
* </p>
*
* @param assignPrivateIpAddressesRequest
* Contains the parameters for AssignPrivateIpAddresses.
* @return Result of the AssignPrivateIpAddresses operation returned by the service.
* @sample AmazonEC2.AssignPrivateIpAddresses
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AssignPrivateIpAddresses" target="_top">AWS
* API Documentation</a>
*/
@Override
public AssignPrivateIpAddressesResult assignPrivateIpAddresses(AssignPrivateIpAddressesRequest request) {
request = beforeClientExecution(request);
return executeAssignPrivateIpAddresses(request);
}
@SdkInternalApi
final AssignPrivateIpAddressesResult executeAssignPrivateIpAddresses(AssignPrivateIpAddressesRequest assignPrivateIpAddressesRequest) {
ExecutionContext executionContext = createExecutionContext(assignPrivateIpAddressesRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<AssignPrivateIpAddressesRequest> request = null;
Response<AssignPrivateIpAddressesResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new AssignPrivateIpAddressesRequestMarshaller().marshall(super.beforeMarshalling(assignPrivateIpAddressesRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<AssignPrivateIpAddressesResult> responseHandler = new StaxResponseHandler<AssignPrivateIpAddressesResult>(
new AssignPrivateIpAddressesResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Associates an Elastic IP address with an instance or a network interface.
* </p>
* <p>
* An Elastic IP address is for use in either the EC2-Classic platform or in a VPC. For more information, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html">Elastic IP Addresses</a>
* in the <i>Amazon Elastic Compute Cloud User Guide</i>.
* </p>
* <p>
* [EC2-Classic, VPC in an EC2-VPC-only account] If the Elastic IP address is already associated with a different
* instance, it is disassociated from that instance and associated with the specified instance. If you associate an
* Elastic IP address with an instance that has an existing Elastic IP address, the existing address is
* disassociated from the instance, but remains allocated to your account.
* </p>
* <p>
* [VPC in an EC2-Classic account] If you don't specify a private IP address, the Elastic IP address is associated
* with the primary IP address. If the Elastic IP address is already associated with a different instance or a
* network interface, you get an error unless you allow reassociation. You cannot associate an Elastic IP address
* with an instance or network interface that has an existing Elastic IP address.
* </p>
* <important>
* <p>
* This is an idempotent operation. If you perform the operation more than once, Amazon EC2 doesn't return an error,
* and you may be charged for each time the Elastic IP address is remapped to the same instance. For more
* information, see the <i>Elastic IP Addresses</i> section of <a href="http://aws.amazon.com/ec2/pricing/">Amazon
* EC2 Pricing</a>.
* </p>
* </important>
*
* @param associateAddressRequest
* Contains the parameters for AssociateAddress.
* @return Result of the AssociateAddress operation returned by the service.
* @sample AmazonEC2.AssociateAddress
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AssociateAddress" target="_top">AWS API
* Documentation</a>
*/
@Override
public AssociateAddressResult associateAddress(AssociateAddressRequest request) {
request = beforeClientExecution(request);
return executeAssociateAddress(request);
}
@SdkInternalApi
final AssociateAddressResult executeAssociateAddress(AssociateAddressRequest associateAddressRequest) {
ExecutionContext executionContext = createExecutionContext(associateAddressRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<AssociateAddressRequest> request = null;
Response<AssociateAddressResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new AssociateAddressRequestMarshaller().marshall(super.beforeMarshalling(associateAddressRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<AssociateAddressResult> responseHandler = new StaxResponseHandler<AssociateAddressResult>(
new AssociateAddressResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Associates a set of DHCP options (that you've previously created) with the specified VPC, or associates no DHCP
* options with the VPC.
* </p>
* <p>
* After you associate the options with the VPC, any existing instances and all new instances that you launch in
* that VPC use the options. You don't need to restart or relaunch the instances. They automatically pick up the
* changes within a few hours, depending on how frequently the instance renews its DHCP lease. You can explicitly
* renew the lease using the operating system on the instance.
* </p>
* <p>
* For more information, see <a
* href="http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_DHCP_Options.html">DHCP Options Sets</a> in the
* <i>Amazon Virtual Private Cloud User Guide</i>.
* </p>
*
* @param associateDhcpOptionsRequest
* Contains the parameters for AssociateDhcpOptions.
* @return Result of the AssociateDhcpOptions operation returned by the service.
* @sample AmazonEC2.AssociateDhcpOptions
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AssociateDhcpOptions" target="_top">AWS API
* Documentation</a>
*/
@Override
public AssociateDhcpOptionsResult associateDhcpOptions(AssociateDhcpOptionsRequest request) {
request = beforeClientExecution(request);
return executeAssociateDhcpOptions(request);
}
@SdkInternalApi
final AssociateDhcpOptionsResult executeAssociateDhcpOptions(AssociateDhcpOptionsRequest associateDhcpOptionsRequest) {
ExecutionContext executionContext = createExecutionContext(associateDhcpOptionsRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<AssociateDhcpOptionsRequest> request = null;
Response<AssociateDhcpOptionsResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new AssociateDhcpOptionsRequestMarshaller().marshall(super.beforeMarshalling(associateDhcpOptionsRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<AssociateDhcpOptionsResult> responseHandler = new StaxResponseHandler<AssociateDhcpOptionsResult>(
new AssociateDhcpOptionsResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Associates an IAM instance profile with a running or stopped instance. You cannot associate more than one IAM
* instance profile with an instance.
* </p>
*
* @param associateIamInstanceProfileRequest
* @return Result of the AssociateIamInstanceProfile operation returned by the service.
* @sample AmazonEC2.AssociateIamInstanceProfile
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AssociateIamInstanceProfile"
* target="_top">AWS API Documentation</a>
*/
@Override
public AssociateIamInstanceProfileResult associateIamInstanceProfile(AssociateIamInstanceProfileRequest request) {
request = beforeClientExecution(request);
return executeAssociateIamInstanceProfile(request);
}
@SdkInternalApi
final AssociateIamInstanceProfileResult executeAssociateIamInstanceProfile(AssociateIamInstanceProfileRequest associateIamInstanceProfileRequest) {
ExecutionContext executionContext = createExecutionContext(associateIamInstanceProfileRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<AssociateIamInstanceProfileRequest> request = null;
Response<AssociateIamInstanceProfileResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new AssociateIamInstanceProfileRequestMarshaller().marshall(super.beforeMarshalling(associateIamInstanceProfileRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<AssociateIamInstanceProfileResult> responseHandler = new StaxResponseHandler<AssociateIamInstanceProfileResult>(
new AssociateIamInstanceProfileResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Associates a subnet with a route table. The subnet and route table must be in the same VPC. This association
* causes traffic originating from the subnet to be routed according to the routes in the route table. The action
* returns an association ID, which you need in order to disassociate the route table from the subnet later. A route
* table can be associated with multiple subnets.
* </p>
* <p>
* For more information about route tables, see <a
* href="http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Route_Tables.html">Route Tables</a> in the
* <i>Amazon Virtual Private Cloud User Guide</i>.
* </p>
*
* @param associateRouteTableRequest
* Contains the parameters for AssociateRouteTable.
* @return Result of the AssociateRouteTable operation returned by the service.
* @sample AmazonEC2.AssociateRouteTable
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AssociateRouteTable" target="_top">AWS API
* Documentation</a>
*/
@Override
public AssociateRouteTableResult associateRouteTable(AssociateRouteTableRequest request) {
request = beforeClientExecution(request);
return executeAssociateRouteTable(request);
}
@SdkInternalApi
final AssociateRouteTableResult executeAssociateRouteTable(AssociateRouteTableRequest associateRouteTableRequest) {
ExecutionContext executionContext = createExecutionContext(associateRouteTableRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<AssociateRouteTableRequest> request = null;
Response<AssociateRouteTableResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new AssociateRouteTableRequestMarshaller().marshall(super.beforeMarshalling(associateRouteTableRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<AssociateRouteTableResult> responseHandler = new StaxResponseHandler<AssociateRouteTableResult>(
new AssociateRouteTableResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Associates a CIDR block with your subnet. You can only associate a single IPv6 CIDR block with your subnet. An
* IPv6 CIDR block must have a prefix length of /64.
* </p>
*
* @param associateSubnetCidrBlockRequest
* @return Result of the AssociateSubnetCidrBlock operation returned by the service.
* @sample AmazonEC2.AssociateSubnetCidrBlock
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AssociateSubnetCidrBlock" target="_top">AWS
* API Documentation</a>
*/
@Override
public AssociateSubnetCidrBlockResult associateSubnetCidrBlock(AssociateSubnetCidrBlockRequest request) {
request = beforeClientExecution(request);
return executeAssociateSubnetCidrBlock(request);
}
@SdkInternalApi
final AssociateSubnetCidrBlockResult executeAssociateSubnetCidrBlock(AssociateSubnetCidrBlockRequest associateSubnetCidrBlockRequest) {
ExecutionContext executionContext = createExecutionContext(associateSubnetCidrBlockRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<AssociateSubnetCidrBlockRequest> request = null;
Response<AssociateSubnetCidrBlockResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new AssociateSubnetCidrBlockRequestMarshaller().marshall(super.beforeMarshalling(associateSubnetCidrBlockRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<AssociateSubnetCidrBlockResult> responseHandler = new StaxResponseHandler<AssociateSubnetCidrBlockResult>(
new AssociateSubnetCidrBlockResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Associates a CIDR block with your VPC. You can only associate a single Amazon-provided IPv6 CIDR block with your
* VPC. The IPv6 CIDR block size is fixed at /56.
* </p>
*
* @param associateVpcCidrBlockRequest
* @return Result of the AssociateVpcCidrBlock operation returned by the service.
* @sample AmazonEC2.AssociateVpcCidrBlock
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AssociateVpcCidrBlock" target="_top">AWS API
* Documentation</a>
*/
@Override
public AssociateVpcCidrBlockResult associateVpcCidrBlock(AssociateVpcCidrBlockRequest request) {
request = beforeClientExecution(request);
return executeAssociateVpcCidrBlock(request);
}
@SdkInternalApi
final AssociateVpcCidrBlockResult executeAssociateVpcCidrBlock(AssociateVpcCidrBlockRequest associateVpcCidrBlockRequest) {
ExecutionContext executionContext = createExecutionContext(associateVpcCidrBlockRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<AssociateVpcCidrBlockRequest> request = null;
Response<AssociateVpcCidrBlockResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new AssociateVpcCidrBlockRequestMarshaller().marshall(super.beforeMarshalling(associateVpcCidrBlockRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<AssociateVpcCidrBlockResult> responseHandler = new StaxResponseHandler<AssociateVpcCidrBlockResult>(
new AssociateVpcCidrBlockResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Links an EC2-Classic instance to a ClassicLink-enabled VPC through one or more of the VPC's security groups. You
* cannot link an EC2-Classic instance to more than one VPC at a time. You can only link an instance that's in the
* <code>running</code> state. An instance is automatically unlinked from a VPC when it's stopped - you can link it
* to the VPC again when you restart it.
* </p>
* <p>
* After you've linked an instance, you cannot change the VPC security groups that are associated with it. To change
* the security groups, you must first unlink the instance, and then link it again.
* </p>
* <p>
* Linking your instance to a VPC is sometimes referred to as <i>attaching</i> your instance.
* </p>
*
* @param attachClassicLinkVpcRequest
* Contains the parameters for AttachClassicLinkVpc.
* @return Result of the AttachClassicLinkVpc operation returned by the service.
* @sample AmazonEC2.AttachClassicLinkVpc
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AttachClassicLinkVpc" target="_top">AWS API
* Documentation</a>
*/
@Override
public AttachClassicLinkVpcResult attachClassicLinkVpc(AttachClassicLinkVpcRequest request) {
request = beforeClientExecution(request);
return executeAttachClassicLinkVpc(request);
}
@SdkInternalApi
final AttachClassicLinkVpcResult executeAttachClassicLinkVpc(AttachClassicLinkVpcRequest attachClassicLinkVpcRequest) {
ExecutionContext executionContext = createExecutionContext(attachClassicLinkVpcRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<AttachClassicLinkVpcRequest> request = null;
Response<AttachClassicLinkVpcResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new AttachClassicLinkVpcRequestMarshaller().marshall(super.beforeMarshalling(attachClassicLinkVpcRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<AttachClassicLinkVpcResult> responseHandler = new StaxResponseHandler<AttachClassicLinkVpcResult>(
new AttachClassicLinkVpcResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Attaches an Internet gateway to a VPC, enabling connectivity between the Internet and the VPC. For more
* information about your VPC and Internet gateway, see the <a
* href="http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/">Amazon Virtual Private Cloud User Guide</a>.
* </p>
*
* @param attachInternetGatewayRequest
* Contains the parameters for AttachInternetGateway.
* @return Result of the AttachInternetGateway operation returned by the service.
* @sample AmazonEC2.AttachInternetGateway
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AttachInternetGateway" target="_top">AWS API
* Documentation</a>
*/
@Override
public AttachInternetGatewayResult attachInternetGateway(AttachInternetGatewayRequest request) {
request = beforeClientExecution(request);
return executeAttachInternetGateway(request);
}
@SdkInternalApi
final AttachInternetGatewayResult executeAttachInternetGateway(AttachInternetGatewayRequest attachInternetGatewayRequest) {
ExecutionContext executionContext = createExecutionContext(attachInternetGatewayRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<AttachInternetGatewayRequest> request = null;
Response<AttachInternetGatewayResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new AttachInternetGatewayRequestMarshaller().marshall(super.beforeMarshalling(attachInternetGatewayRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<AttachInternetGatewayResult> responseHandler = new StaxResponseHandler<AttachInternetGatewayResult>(
new AttachInternetGatewayResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Attaches a network interface to an instance.
* </p>
*
* @param attachNetworkInterfaceRequest
* Contains the parameters for AttachNetworkInterface.
* @return Result of the AttachNetworkInterface operation returned by the service.
* @sample AmazonEC2.AttachNetworkInterface
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AttachNetworkInterface" target="_top">AWS API
* Documentation</a>
*/
@Override
public AttachNetworkInterfaceResult attachNetworkInterface(AttachNetworkInterfaceRequest request) {
request = beforeClientExecution(request);
return executeAttachNetworkInterface(request);
}
@SdkInternalApi
final AttachNetworkInterfaceResult executeAttachNetworkInterface(AttachNetworkInterfaceRequest attachNetworkInterfaceRequest) {
ExecutionContext executionContext = createExecutionContext(attachNetworkInterfaceRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<AttachNetworkInterfaceRequest> request = null;
Response<AttachNetworkInterfaceResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new AttachNetworkInterfaceRequestMarshaller().marshall(super.beforeMarshalling(attachNetworkInterfaceRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<AttachNetworkInterfaceResult> responseHandler = new StaxResponseHandler<AttachNetworkInterfaceResult>(
new AttachNetworkInterfaceResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Attaches an EBS volume to a running or stopped instance and exposes it to the instance with the specified device
* name.
* </p>
* <p>
* Encrypted EBS volumes may only be attached to instances that support Amazon EBS encryption. For more information,
* see <a href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html">Amazon EBS Encryption</a> in
* the <i>Amazon Elastic Compute Cloud User Guide</i>.
* </p>
* <p>
* For a list of supported device names, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-attaching-volume.html">Attaching an EBS Volume to an
* Instance</a>. Any device names that aren't reserved for instance store volumes can be used for EBS volumes. For
* more information, see <a href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html">Amazon
* EC2 Instance Store</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.
* </p>
* <p>
* If a volume has an AWS Marketplace product code:
* </p>
* <ul>
* <li>
* <p>
* The volume can be attached only to a stopped instance.
* </p>
* </li>
* <li>
* <p>
* AWS Marketplace product codes are copied from the volume to the instance.
* </p>
* </li>
* <li>
* <p>
* You must be subscribed to the product.
* </p>
* </li>
* <li>
* <p>
* 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.
* </p>
* </li>
* </ul>
* <p>
* For an overview of the AWS Marketplace, see <a
* href="https://aws.amazon.com/marketplace/help/200900000">Introducing AWS Marketplace</a>.
* </p>
* <p>
* For more information about EBS volumes, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-attaching-volume.html">Attaching Amazon EBS
* Volumes</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.
* </p>
*
* @param attachVolumeRequest
* Contains the parameters for AttachVolume.
* @return Result of the AttachVolume operation returned by the service.
* @sample AmazonEC2.AttachVolume
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AttachVolume" target="_top">AWS API
* Documentation</a>
*/
@Override
public AttachVolumeResult attachVolume(AttachVolumeRequest request) {
request = beforeClientExecution(request);
return executeAttachVolume(request);
}
@SdkInternalApi
final AttachVolumeResult executeAttachVolume(AttachVolumeRequest attachVolumeRequest) {
ExecutionContext executionContext = createExecutionContext(attachVolumeRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<AttachVolumeRequest> request = null;
Response<AttachVolumeResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new AttachVolumeRequestMarshaller().marshall(super.beforeMarshalling(attachVolumeRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<AttachVolumeResult> responseHandler = new StaxResponseHandler<AttachVolumeResult>(new AttachVolumeResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Attaches a virtual private gateway to a VPC. You can attach one virtual private gateway to one VPC at a time.
* </p>
* <p>
* For more information, see <a href="http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_VPN.html">Adding a
* Hardware Virtual Private Gateway to Your VPC</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.
* </p>
*
* @param attachVpnGatewayRequest
* Contains the parameters for AttachVpnGateway.
* @return Result of the AttachVpnGateway operation returned by the service.
* @sample AmazonEC2.AttachVpnGateway
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AttachVpnGateway" target="_top">AWS API
* Documentation</a>
*/
@Override
public AttachVpnGatewayResult attachVpnGateway(AttachVpnGatewayRequest request) {
request = beforeClientExecution(request);
return executeAttachVpnGateway(request);
}
@SdkInternalApi
final AttachVpnGatewayResult executeAttachVpnGateway(AttachVpnGatewayRequest attachVpnGatewayRequest) {
ExecutionContext executionContext = createExecutionContext(attachVpnGatewayRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<AttachVpnGatewayRequest> request = null;
Response<AttachVpnGatewayResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new AttachVpnGatewayRequestMarshaller().marshall(super.beforeMarshalling(attachVpnGatewayRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<AttachVpnGatewayResult> responseHandler = new StaxResponseHandler<AttachVpnGatewayResult>(
new AttachVpnGatewayResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* [EC2-VPC only] Adds one or more egress rules to a security group for use with a VPC. Specifically, this action
* permits instances to send traffic to one or more destination IPv4 or IPv6 CIDR address ranges, or to one or more
* destination security groups for the same VPC. This action doesn't apply to security groups for use in
* EC2-Classic. For more information, see <a
* href="http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_SecurityGroups.html">Security Groups for Your
* VPC</a> in the <i>Amazon Virtual Private Cloud User Guide</i>. For more information about security group limits,
* see <a href="http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Appendix_Limits.html">Amazon VPC
* Limits</a>.
* </p>
* <p>
* Each rule consists of the protocol (for example, TCP), plus either a CIDR range or a source group. For the TCP
* and UDP protocols, you must also specify the destination port or port range. For the ICMP protocol, you must also
* specify the ICMP type and code. You can use -1 for the type or code to mean all types or all codes.
* </p>
* <p>
* Rule changes are propagated to affected instances as quickly as possible. However, a small delay might occur.
* </p>
*
* @param authorizeSecurityGroupEgressRequest
* Contains the parameters for AuthorizeSecurityGroupEgress.
* @return Result of the AuthorizeSecurityGroupEgress operation returned by the service.
* @sample AmazonEC2.AuthorizeSecurityGroupEgress
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AuthorizeSecurityGroupEgress"
* target="_top">AWS API Documentation</a>
*/
@Override
public AuthorizeSecurityGroupEgressResult authorizeSecurityGroupEgress(AuthorizeSecurityGroupEgressRequest request) {
request = beforeClientExecution(request);
return executeAuthorizeSecurityGroupEgress(request);
}
@SdkInternalApi
final AuthorizeSecurityGroupEgressResult executeAuthorizeSecurityGroupEgress(AuthorizeSecurityGroupEgressRequest authorizeSecurityGroupEgressRequest) {
ExecutionContext executionContext = createExecutionContext(authorizeSecurityGroupEgressRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<AuthorizeSecurityGroupEgressRequest> request = null;
Response<AuthorizeSecurityGroupEgressResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new AuthorizeSecurityGroupEgressRequestMarshaller().marshall(super.beforeMarshalling(authorizeSecurityGroupEgressRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<AuthorizeSecurityGroupEgressResult> responseHandler = new StaxResponseHandler<AuthorizeSecurityGroupEgressResult>(
new AuthorizeSecurityGroupEgressResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Adds one or more ingress rules to a security group.
* </p>
* <p>
* Rule changes are propagated to instances within the security group as quickly as possible. However, a small delay
* might occur.
* </p>
* <p>
* [EC2-Classic] This action gives one or more IPv4 CIDR address ranges permission to access a security group in
* your account, or gives one or more security groups (called the <i>source groups</i>) permission to access a
* security group for your account. A source group can be for your own AWS account, or another. You can have up to
* 100 rules per group.
* </p>
* <p>
* [EC2-VPC] This action gives one or more IPv4 or IPv6 CIDR address ranges permission to access a security group in
* your VPC, or gives one or more other security groups (called the <i>source groups</i>) permission to access a
* security group for your VPC. The security groups must all be for the same VPC or a peer VPC in a VPC peering
* connection. For more information about VPC security group limits, see <a
* href="http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Appendix_Limits.html">Amazon VPC Limits</a>.
* </p>
*
* @param authorizeSecurityGroupIngressRequest
* Contains the parameters for AuthorizeSecurityGroupIngress.
* @return Result of the AuthorizeSecurityGroupIngress operation returned by the service.
* @sample AmazonEC2.AuthorizeSecurityGroupIngress
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AuthorizeSecurityGroupIngress"
* target="_top">AWS API Documentation</a>
*/
@Override
public AuthorizeSecurityGroupIngressResult authorizeSecurityGroupIngress(AuthorizeSecurityGroupIngressRequest request) {
request = beforeClientExecution(request);
return executeAuthorizeSecurityGroupIngress(request);
}
@SdkInternalApi
final AuthorizeSecurityGroupIngressResult executeAuthorizeSecurityGroupIngress(AuthorizeSecurityGroupIngressRequest authorizeSecurityGroupIngressRequest) {
ExecutionContext executionContext = createExecutionContext(authorizeSecurityGroupIngressRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<AuthorizeSecurityGroupIngressRequest> request = null;
Response<AuthorizeSecurityGroupIngressResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new AuthorizeSecurityGroupIngressRequestMarshaller().marshall(super.beforeMarshalling(authorizeSecurityGroupIngressRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<AuthorizeSecurityGroupIngressResult> responseHandler = new StaxResponseHandler<AuthorizeSecurityGroupIngressResult>(
new AuthorizeSecurityGroupIngressResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Bundles an Amazon instance store-backed Windows instance.
* </p>
* <p>
* During bundling, only the root device volume (C:\) is bundled. Data on other instance store volumes is not
* preserved.
* </p>
* <note>
* <p>
* This action is not applicable for Linux/Unix instances or Windows instances that are backed by Amazon EBS.
* </p>
* </note>
* <p>
* For more information, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/Creating_InstanceStoreBacked_WinAMI.html">Creating an
* Instance Store-Backed Windows AMI</a>.
* </p>
*
* @param bundleInstanceRequest
* Contains the parameters for BundleInstance.
* @return Result of the BundleInstance operation returned by the service.
* @sample AmazonEC2.BundleInstance
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/BundleInstance" target="_top">AWS API
* Documentation</a>
*/
@Override
public BundleInstanceResult bundleInstance(BundleInstanceRequest request) {
request = beforeClientExecution(request);
return executeBundleInstance(request);
}
@SdkInternalApi
final BundleInstanceResult executeBundleInstance(BundleInstanceRequest bundleInstanceRequest) {
ExecutionContext executionContext = createExecutionContext(bundleInstanceRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<BundleInstanceRequest> request = null;
Response<BundleInstanceResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new BundleInstanceRequestMarshaller().marshall(super.beforeMarshalling(bundleInstanceRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<BundleInstanceResult> responseHandler = new StaxResponseHandler<BundleInstanceResult>(
new BundleInstanceResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Cancels a bundling operation for an instance store-backed Windows instance.
* </p>
*
* @param cancelBundleTaskRequest
* Contains the parameters for CancelBundleTask.
* @return Result of the CancelBundleTask operation returned by the service.
* @sample AmazonEC2.CancelBundleTask
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CancelBundleTask" target="_top">AWS API
* Documentation</a>
*/
@Override
public CancelBundleTaskResult cancelBundleTask(CancelBundleTaskRequest request) {
request = beforeClientExecution(request);
return executeCancelBundleTask(request);
}
@SdkInternalApi
final CancelBundleTaskResult executeCancelBundleTask(CancelBundleTaskRequest cancelBundleTaskRequest) {
ExecutionContext executionContext = createExecutionContext(cancelBundleTaskRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<CancelBundleTaskRequest> request = null;
Response<CancelBundleTaskResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new CancelBundleTaskRequestMarshaller().marshall(super.beforeMarshalling(cancelBundleTaskRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<CancelBundleTaskResult> responseHandler = new StaxResponseHandler<CancelBundleTaskResult>(
new CancelBundleTaskResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Cancels an active conversion task. The task can be the import of an instance or volume. The action removes all
* artifacts of the conversion, including a partially uploaded volume or instance. If the conversion is complete or
* is in the process of transferring the final disk image, the command fails and returns an exception.
* </p>
* <p>
* For more information, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/CommandLineReference/ec2-cli-vmimport-export.html">Importing a
* Virtual Machine Using the Amazon EC2 CLI</a>.
* </p>
*
* @param cancelConversionTaskRequest
* Contains the parameters for CancelConversionTask.
* @return Result of the CancelConversionTask operation returned by the service.
* @sample AmazonEC2.CancelConversionTask
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CancelConversionTask" target="_top">AWS API
* Documentation</a>
*/
@Override
public CancelConversionTaskResult cancelConversionTask(CancelConversionTaskRequest request) {
request = beforeClientExecution(request);
return executeCancelConversionTask(request);
}
@SdkInternalApi
final CancelConversionTaskResult executeCancelConversionTask(CancelConversionTaskRequest cancelConversionTaskRequest) {
ExecutionContext executionContext = createExecutionContext(cancelConversionTaskRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<CancelConversionTaskRequest> request = null;
Response<CancelConversionTaskResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new CancelConversionTaskRequestMarshaller().marshall(super.beforeMarshalling(cancelConversionTaskRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<CancelConversionTaskResult> responseHandler = new StaxResponseHandler<CancelConversionTaskResult>(
new CancelConversionTaskResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Cancels an active export task. The request removes all artifacts of the export, including any partially-created
* Amazon S3 objects. If the export task is complete or is in the process of transferring the final disk image, the
* command fails and returns an error.
* </p>
*
* @param cancelExportTaskRequest
* Contains the parameters for CancelExportTask.
* @return Result of the CancelExportTask operation returned by the service.
* @sample AmazonEC2.CancelExportTask
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CancelExportTask" target="_top">AWS API
* Documentation</a>
*/
@Override
public CancelExportTaskResult cancelExportTask(CancelExportTaskRequest request) {
request = beforeClientExecution(request);
return executeCancelExportTask(request);
}
@SdkInternalApi
final CancelExportTaskResult executeCancelExportTask(CancelExportTaskRequest cancelExportTaskRequest) {
ExecutionContext executionContext = createExecutionContext(cancelExportTaskRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<CancelExportTaskRequest> request = null;
Response<CancelExportTaskResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new CancelExportTaskRequestMarshaller().marshall(super.beforeMarshalling(cancelExportTaskRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<CancelExportTaskResult> responseHandler = new StaxResponseHandler<CancelExportTaskResult>(
new CancelExportTaskResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Cancels an in-process import virtual machine or import snapshot task.
* </p>
*
* @param cancelImportTaskRequest
* Contains the parameters for CancelImportTask.
* @return Result of the CancelImportTask operation returned by the service.
* @sample AmazonEC2.CancelImportTask
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CancelImportTask" target="_top">AWS API
* Documentation</a>
*/
@Override
public CancelImportTaskResult cancelImportTask(CancelImportTaskRequest request) {
request = beforeClientExecution(request);
return executeCancelImportTask(request);
}
@SdkInternalApi
final CancelImportTaskResult executeCancelImportTask(CancelImportTaskRequest cancelImportTaskRequest) {
ExecutionContext executionContext = createExecutionContext(cancelImportTaskRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<CancelImportTaskRequest> request = null;
Response<CancelImportTaskResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new CancelImportTaskRequestMarshaller().marshall(super.beforeMarshalling(cancelImportTaskRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<CancelImportTaskResult> responseHandler = new StaxResponseHandler<CancelImportTaskResult>(
new CancelImportTaskResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
@Override
public CancelImportTaskResult cancelImportTask() {
return cancelImportTask(new CancelImportTaskRequest());
}
/**
* <p>
* Cancels the specified Reserved Instance listing in the Reserved Instance Marketplace.
* </p>
* <p>
* For more information, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-market-general.html">Reserved Instance
* Marketplace</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.
* </p>
*
* @param cancelReservedInstancesListingRequest
* Contains the parameters for CancelReservedInstancesListing.
* @return Result of the CancelReservedInstancesListing operation returned by the service.
* @sample AmazonEC2.CancelReservedInstancesListing
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CancelReservedInstancesListing"
* target="_top">AWS API Documentation</a>
*/
@Override
public CancelReservedInstancesListingResult cancelReservedInstancesListing(CancelReservedInstancesListingRequest request) {
request = beforeClientExecution(request);
return executeCancelReservedInstancesListing(request);
}
@SdkInternalApi
final CancelReservedInstancesListingResult executeCancelReservedInstancesListing(CancelReservedInstancesListingRequest cancelReservedInstancesListingRequest) {
ExecutionContext executionContext = createExecutionContext(cancelReservedInstancesListingRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<CancelReservedInstancesListingRequest> request = null;
Response<CancelReservedInstancesListingResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new CancelReservedInstancesListingRequestMarshaller().marshall(super.beforeMarshalling(cancelReservedInstancesListingRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<CancelReservedInstancesListingResult> responseHandler = new StaxResponseHandler<CancelReservedInstancesListingResult>(
new CancelReservedInstancesListingResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Cancels the specified Spot fleet requests.
* </p>
* <p>
* After you cancel a Spot fleet request, the Spot fleet launches no new Spot instances. You must specify whether
* the Spot fleet should also terminate its Spot instances. If you terminate the instances, the Spot fleet request
* enters the <code>cancelled_terminating</code> state. Otherwise, the Spot fleet request enters the
* <code>cancelled_running</code> state and the instances continue to run until they are interrupted or you
* terminate them manually.
* </p>
*
* @param cancelSpotFleetRequestsRequest
* Contains the parameters for CancelSpotFleetRequests.
* @return Result of the CancelSpotFleetRequests operation returned by the service.
* @sample AmazonEC2.CancelSpotFleetRequests
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CancelSpotFleetRequests" target="_top">AWS
* API Documentation</a>
*/
@Override
public CancelSpotFleetRequestsResult cancelSpotFleetRequests(CancelSpotFleetRequestsRequest request) {
request = beforeClientExecution(request);
return executeCancelSpotFleetRequests(request);
}
@SdkInternalApi
final CancelSpotFleetRequestsResult executeCancelSpotFleetRequests(CancelSpotFleetRequestsRequest cancelSpotFleetRequestsRequest) {
ExecutionContext executionContext = createExecutionContext(cancelSpotFleetRequestsRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<CancelSpotFleetRequestsRequest> request = null;
Response<CancelSpotFleetRequestsResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new CancelSpotFleetRequestsRequestMarshaller().marshall(super.beforeMarshalling(cancelSpotFleetRequestsRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<CancelSpotFleetRequestsResult> responseHandler = new StaxResponseHandler<CancelSpotFleetRequestsResult>(
new CancelSpotFleetRequestsResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Cancels one or more Spot instance requests. Spot instances are instances that Amazon EC2 starts on your behalf
* when the bid price that you specify exceeds the current Spot price. Amazon EC2 periodically sets the Spot price
* based on available Spot instance capacity and current Spot instance requests. For more information, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-requests.html">Spot Instance Requests</a> in the
* <i>Amazon Elastic Compute Cloud User Guide</i>.
* </p>
* <important>
* <p>
* Canceling a Spot instance request does not terminate running Spot instances associated with the request.
* </p>
* </important>
*
* @param cancelSpotInstanceRequestsRequest
* Contains the parameters for CancelSpotInstanceRequests.
* @return Result of the CancelSpotInstanceRequests operation returned by the service.
* @sample AmazonEC2.CancelSpotInstanceRequests
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CancelSpotInstanceRequests" target="_top">AWS
* API Documentation</a>
*/
@Override
public CancelSpotInstanceRequestsResult cancelSpotInstanceRequests(CancelSpotInstanceRequestsRequest request) {
request = beforeClientExecution(request);
return executeCancelSpotInstanceRequests(request);
}
@SdkInternalApi
final CancelSpotInstanceRequestsResult executeCancelSpotInstanceRequests(CancelSpotInstanceRequestsRequest cancelSpotInstanceRequestsRequest) {
ExecutionContext executionContext = createExecutionContext(cancelSpotInstanceRequestsRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<CancelSpotInstanceRequestsRequest> request = null;
Response<CancelSpotInstanceRequestsResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new CancelSpotInstanceRequestsRequestMarshaller().marshall(super.beforeMarshalling(cancelSpotInstanceRequestsRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<CancelSpotInstanceRequestsResult> responseHandler = new StaxResponseHandler<CancelSpotInstanceRequestsResult>(
new CancelSpotInstanceRequestsResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Determines whether a product code is associated with an instance. This action can only be used by the owner of
* the product code. It is useful when a product code owner needs to verify whether another user's instance is
* eligible for support.
* </p>
*
* @param confirmProductInstanceRequest
* Contains the parameters for ConfirmProductInstance.
* @return Result of the ConfirmProductInstance operation returned by the service.
* @sample AmazonEC2.ConfirmProductInstance
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ConfirmProductInstance" target="_top">AWS API
* Documentation</a>
*/
@Override
public ConfirmProductInstanceResult confirmProductInstance(ConfirmProductInstanceRequest request) {
request = beforeClientExecution(request);
return executeConfirmProductInstance(request);
}
@SdkInternalApi
final ConfirmProductInstanceResult executeConfirmProductInstance(ConfirmProductInstanceRequest confirmProductInstanceRequest) {
ExecutionContext executionContext = createExecutionContext(confirmProductInstanceRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<ConfirmProductInstanceRequest> request = null;
Response<ConfirmProductInstanceResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ConfirmProductInstanceRequestMarshaller().marshall(super.beforeMarshalling(confirmProductInstanceRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<ConfirmProductInstanceResult> responseHandler = new StaxResponseHandler<ConfirmProductInstanceResult>(
new ConfirmProductInstanceResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Initiates the copy of an AMI from the specified source region to the current region. You specify the destination
* region by using its endpoint when making the request.
* </p>
* <p>
* For more information, see <a href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/CopyingAMIs.html">Copying
* AMIs</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.
* </p>
*
* @param copyImageRequest
* Contains the parameters for CopyImage.
* @return Result of the CopyImage operation returned by the service.
* @sample AmazonEC2.CopyImage
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CopyImage" target="_top">AWS API
* Documentation</a>
*/
@Override
public CopyImageResult copyImage(CopyImageRequest request) {
request = beforeClientExecution(request);
return executeCopyImage(request);
}
@SdkInternalApi
final CopyImageResult executeCopyImage(CopyImageRequest copyImageRequest) {
ExecutionContext executionContext = createExecutionContext(copyImageRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<CopyImageRequest> request = null;
Response<CopyImageResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new CopyImageRequestMarshaller().marshall(super.beforeMarshalling(copyImageRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<CopyImageResult> responseHandler = new StaxResponseHandler<CopyImageResult>(new CopyImageResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Copies a point-in-time snapshot of an EBS volume and stores it in Amazon S3. You can copy the snapshot within the
* same region or from one region to another. You can use the snapshot to create EBS volumes or Amazon Machine
* Images (AMIs). The snapshot is copied to the regional endpoint that you send the HTTP request to.
* </p>
* <p>
* Copies of encrypted EBS snapshots remain encrypted. Copies of unencrypted snapshots remain unencrypted, unless
* the <code>Encrypted</code> flag is specified during the snapshot copy operation. By default, encrypted snapshot
* copies use the default AWS Key Management Service (AWS KMS) customer master key (CMK); however, you can specify a
* non-default CMK with the <code>KmsKeyId</code> parameter.
* </p>
* <note>
* <p>
* To copy an encrypted snapshot that has been shared from another account, you must have permissions for the CMK
* used to encrypt the snapshot.
* </p>
* </note> <note>
* <p>
* Snapshots created by the CopySnapshot action have an arbitrary volume ID that should not be used for any purpose.
* </p>
* </note>
* <p>
* For more information, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-copy-snapshot.html">Copying an Amazon EBS
* Snapshot</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.
* </p>
*
* @param copySnapshotRequest
* Contains the parameters for CopySnapshot.
* @return Result of the CopySnapshot operation returned by the service.
* @sample AmazonEC2.CopySnapshot
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CopySnapshot" target="_top">AWS API
* Documentation</a>
*/
@Override
public CopySnapshotResult copySnapshot(CopySnapshotRequest request) {
request = beforeClientExecution(request);
return executeCopySnapshot(request);
}
@SdkInternalApi
final CopySnapshotResult executeCopySnapshot(CopySnapshotRequest copySnapshotRequest) {
ExecutionContext executionContext = createExecutionContext(copySnapshotRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<CopySnapshotRequest> request = null;
Response<CopySnapshotResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new CopySnapshotRequestMarshaller().marshall(super.beforeMarshalling(copySnapshotRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<CopySnapshotResult> responseHandler = new StaxResponseHandler<CopySnapshotResult>(new CopySnapshotResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Provides information to AWS about your VPN customer gateway device. The customer gateway is the appliance at your
* end of the VPN connection. (The device on the AWS side of the VPN connection is the virtual private gateway.) You
* must provide the Internet-routable IP address of the customer gateway's external interface. The IP address must
* be static and may be behind a device performing network address translation (NAT).
* </p>
* <p>
* For devices that use Border Gateway Protocol (BGP), you can also provide the device's BGP Autonomous System
* Number (ASN). You can use an existing ASN assigned to your network. If you don't have an ASN already, you can use
* a private ASN (in the 64512 - 65534 range).
* </p>
* <note>
* <p>
* Amazon EC2 supports all 2-byte ASN numbers in the range of 1 - 65534, with the exception of 7224, which is
* reserved in the <code>us-east-1</code> region, and 9059, which is reserved in the <code>eu-west-1</code> region.
* </p>
* </note>
* <p>
* For more information about VPN customer gateways, see <a
* href="http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_VPN.html">Adding a Hardware Virtual Private
* Gateway to Your VPC</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.
* </p>
* <important>
* <p>
* You cannot create more than one customer gateway with the same VPN type, IP address, and BGP ASN parameter
* values. If you run an identical request more than one time, the first request creates the customer gateway, and
* subsequent requests return information about the existing customer gateway. The subsequent requests do not create
* new customer gateway resources.
* </p>
* </important>
*
* @param createCustomerGatewayRequest
* Contains the parameters for CreateCustomerGateway.
* @return Result of the CreateCustomerGateway operation returned by the service.
* @sample AmazonEC2.CreateCustomerGateway
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateCustomerGateway" target="_top">AWS API
* Documentation</a>
*/
@Override
public CreateCustomerGatewayResult createCustomerGateway(CreateCustomerGatewayRequest request) {
request = beforeClientExecution(request);
return executeCreateCustomerGateway(request);
}
@SdkInternalApi
final CreateCustomerGatewayResult executeCreateCustomerGateway(CreateCustomerGatewayRequest createCustomerGatewayRequest) {
ExecutionContext executionContext = createExecutionContext(createCustomerGatewayRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<CreateCustomerGatewayRequest> request = null;
Response<CreateCustomerGatewayResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new CreateCustomerGatewayRequestMarshaller().marshall(super.beforeMarshalling(createCustomerGatewayRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<CreateCustomerGatewayResult> responseHandler = new StaxResponseHandler<CreateCustomerGatewayResult>(
new CreateCustomerGatewayResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Creates a set of DHCP options for your VPC. After creating the set, you must associate it with the VPC, causing
* all existing and new instances that you launch in the VPC to use this set of DHCP options. The following are the
* individual DHCP options you can specify. For more information about the options, see <a
* href="http://www.ietf.org/rfc/rfc2132.txt">RFC 2132</a>.
* </p>
* <ul>
* <li>
* <p>
* <code>domain-name-servers</code> - The IP addresses of up to four domain name servers, or AmazonProvidedDNS. The
* default DHCP option set specifies AmazonProvidedDNS. If specifying more than one domain name server, specify the
* IP addresses in a single parameter, separated by commas. If you want your instance to receive a custom DNS
* hostname as specified in <code>domain-name</code>, you must set <code>domain-name-servers</code> to a custom DNS
* server.
* </p>
* </li>
* <li>
* <p>
* <code>domain-name</code> - If you're using AmazonProvidedDNS in <code>us-east-1</code>, specify
* <code>ec2.internal</code>. If you're using AmazonProvidedDNS in another region, specify
* <code>region.compute.internal</code> (for example, <code>ap-northeast-1.compute.internal</code>). Otherwise,
* specify a domain name (for example, <code>MyCompany.com</code>). This value is used to complete unqualified DNS
* hostnames. <b>Important</b>: Some Linux operating systems accept multiple domain names separated by spaces.
* However, Windows and other Linux operating systems treat the value as a single domain, which results in
* unexpected behavior. If your DHCP options set is associated with a VPC that has instances with multiple operating
* systems, specify only one domain name.
* </p>
* </li>
* <li>
* <p>
* <code>ntp-servers</code> - The IP addresses of up to four Network Time Protocol (NTP) servers.
* </p>
* </li>
* <li>
* <p>
* <code>netbios-name-servers</code> - The IP addresses of up to four NetBIOS name servers.
* </p>
* </li>
* <li>
* <p>
* <code>netbios-node-type</code> - The NetBIOS node type (1, 2, 4, or 8). We recommend that you specify 2
* (broadcast and multicast are not currently supported). For more information about these node types, see <a
* href="http://www.ietf.org/rfc/rfc2132.txt">RFC 2132</a>.
* </p>
* </li>
* </ul>
* <p>
* Your VPC automatically starts out with a set of DHCP options that includes only a DNS server that we provide
* (AmazonProvidedDNS). If you create a set of options, and if your VPC has an Internet gateway, make sure to set
* the <code>domain-name-servers</code> option either to <code>AmazonProvidedDNS</code> or to a domain name server
* of your choice. For more information about DHCP options, see <a
* href="http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_DHCP_Options.html">DHCP Options Sets</a> in the
* <i>Amazon Virtual Private Cloud User Guide</i>.
* </p>
*
* @param createDhcpOptionsRequest
* Contains the parameters for CreateDhcpOptions.
* @return Result of the CreateDhcpOptions operation returned by the service.
* @sample AmazonEC2.CreateDhcpOptions
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateDhcpOptions" target="_top">AWS API
* Documentation</a>
*/
@Override
public CreateDhcpOptionsResult createDhcpOptions(CreateDhcpOptionsRequest request) {
request = beforeClientExecution(request);
return executeCreateDhcpOptions(request);
}
@SdkInternalApi
final CreateDhcpOptionsResult executeCreateDhcpOptions(CreateDhcpOptionsRequest createDhcpOptionsRequest) {
ExecutionContext executionContext = createExecutionContext(createDhcpOptionsRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<CreateDhcpOptionsRequest> request = null;
Response<CreateDhcpOptionsResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new CreateDhcpOptionsRequestMarshaller().marshall(super.beforeMarshalling(createDhcpOptionsRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<CreateDhcpOptionsResult> responseHandler = new StaxResponseHandler<CreateDhcpOptionsResult>(
new CreateDhcpOptionsResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* [IPv6 only] Creates an egress-only Internet gateway for your VPC. An egress-only Internet gateway is used to
* enable outbound communication over IPv6 from instances in your VPC to the Internet, and prevents hosts outside of
* your VPC from initiating an IPv6 connection with your instance.
* </p>
*
* @param createEgressOnlyInternetGatewayRequest
* @return Result of the CreateEgressOnlyInternetGateway operation returned by the service.
* @sample AmazonEC2.CreateEgressOnlyInternetGateway
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateEgressOnlyInternetGateway"
* target="_top">AWS API Documentation</a>
*/
@Override
public CreateEgressOnlyInternetGatewayResult createEgressOnlyInternetGateway(CreateEgressOnlyInternetGatewayRequest request) {
request = beforeClientExecution(request);
return executeCreateEgressOnlyInternetGateway(request);
}
@SdkInternalApi
final CreateEgressOnlyInternetGatewayResult executeCreateEgressOnlyInternetGateway(
CreateEgressOnlyInternetGatewayRequest createEgressOnlyInternetGatewayRequest) {
ExecutionContext executionContext = createExecutionContext(createEgressOnlyInternetGatewayRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<CreateEgressOnlyInternetGatewayRequest> request = null;
Response<CreateEgressOnlyInternetGatewayResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new CreateEgressOnlyInternetGatewayRequestMarshaller().marshall(super.beforeMarshalling(createEgressOnlyInternetGatewayRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<CreateEgressOnlyInternetGatewayResult> responseHandler = new StaxResponseHandler<CreateEgressOnlyInternetGatewayResult>(
new CreateEgressOnlyInternetGatewayResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Creates one or more flow logs to capture IP traffic for a specific network interface, subnet, or VPC. Flow logs
* are delivered to a specified log group in Amazon CloudWatch Logs. If you specify a VPC or subnet in the request,
* a log stream is created in CloudWatch Logs for each network interface in the subnet or VPC. Log streams can
* include information about accepted and rejected traffic to a network interface. You can view the data in your log
* streams using Amazon CloudWatch Logs.
* </p>
* <p>
* In your request, you must also specify an IAM role that has permission to publish logs to CloudWatch Logs.
* </p>
*
* @param createFlowLogsRequest
* Contains the parameters for CreateFlowLogs.
* @return Result of the CreateFlowLogs operation returned by the service.
* @sample AmazonEC2.CreateFlowLogs
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateFlowLogs" target="_top">AWS API
* Documentation</a>
*/
@Override
public CreateFlowLogsResult createFlowLogs(CreateFlowLogsRequest request) {
request = beforeClientExecution(request);
return executeCreateFlowLogs(request);
}
@SdkInternalApi
final CreateFlowLogsResult executeCreateFlowLogs(CreateFlowLogsRequest createFlowLogsRequest) {
ExecutionContext executionContext = createExecutionContext(createFlowLogsRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<CreateFlowLogsRequest> request = null;
Response<CreateFlowLogsResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new CreateFlowLogsRequestMarshaller().marshall(super.beforeMarshalling(createFlowLogsRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<CreateFlowLogsResult> responseHandler = new StaxResponseHandler<CreateFlowLogsResult>(
new CreateFlowLogsResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Creates an Amazon FPGA Image (AFI) from the specified design checkpoint (DCP).
* </p>
* <p>
* The create operation is asynchronous. To verify that the AFI is ready for use, check the output logs.
* </p>
* <p>
* An AFI contains the FPGA bitstream that is ready to download to an FPGA. You can securely deploy an AFI on one or
* more FPGA-accelerated instances. For more information, see the <a href="https://github.com/aws/aws-fpga/">AWS
* FPGA Hardware Development Kit</a>.
* </p>
*
* @param createFpgaImageRequest
* @return Result of the CreateFpgaImage operation returned by the service.
* @sample AmazonEC2.CreateFpgaImage
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateFpgaImage" target="_top">AWS API
* Documentation</a>
*/
@Override
public CreateFpgaImageResult createFpgaImage(CreateFpgaImageRequest request) {
request = beforeClientExecution(request);
return executeCreateFpgaImage(request);
}
@SdkInternalApi
final CreateFpgaImageResult executeCreateFpgaImage(CreateFpgaImageRequest createFpgaImageRequest) {
ExecutionContext executionContext = createExecutionContext(createFpgaImageRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<CreateFpgaImageRequest> request = null;
Response<CreateFpgaImageResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new CreateFpgaImageRequestMarshaller().marshall(super.beforeMarshalling(createFpgaImageRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<CreateFpgaImageResult> responseHandler = new StaxResponseHandler<CreateFpgaImageResult>(
new CreateFpgaImageResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Creates an Amazon EBS-backed AMI from an Amazon EBS-backed instance that is either running or stopped.
* </p>
* <p>
* If you customized your instance with instance store volumes or EBS volumes in addition to the root device volume,
* the new AMI contains block device mapping information for those volumes. When you launch an instance from this
* new AMI, the instance automatically launches with those additional volumes.
* </p>
* <p>
* For more information, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-ebs.html">Creating Amazon EBS-Backed
* Linux AMIs</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.
* </p>
*
* @param createImageRequest
* Contains the parameters for CreateImage.
* @return Result of the CreateImage operation returned by the service.
* @sample AmazonEC2.CreateImage
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateImage" target="_top">AWS API
* Documentation</a>
*/
@Override
public CreateImageResult createImage(CreateImageRequest request) {
request = beforeClientExecution(request);
return executeCreateImage(request);
}
@SdkInternalApi
final CreateImageResult executeCreateImage(CreateImageRequest createImageRequest) {
ExecutionContext executionContext = createExecutionContext(createImageRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<CreateImageRequest> request = null;
Response<CreateImageResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new CreateImageRequestMarshaller().marshall(super.beforeMarshalling(createImageRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<CreateImageResult> responseHandler = new StaxResponseHandler<CreateImageResult>(new CreateImageResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Exports a running or stopped instance to an S3 bucket.
* </p>
* <p>
* For information about the supported operating systems, image formats, and known limitations for the types of
* instances you can export, see <a
* href="http://docs.aws.amazon.com/vm-import/latest/userguide/vmexport.html">Exporting an Instance as a VM Using VM
* Import/Export</a> in the <i>VM Import/Export User Guide</i>.
* </p>
*
* @param createInstanceExportTaskRequest
* Contains the parameters for CreateInstanceExportTask.
* @return Result of the CreateInstanceExportTask operation returned by the service.
* @sample AmazonEC2.CreateInstanceExportTask
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateInstanceExportTask" target="_top">AWS
* API Documentation</a>
*/
@Override
public CreateInstanceExportTaskResult createInstanceExportTask(CreateInstanceExportTaskRequest request) {
request = beforeClientExecution(request);
return executeCreateInstanceExportTask(request);
}
@SdkInternalApi
final CreateInstanceExportTaskResult executeCreateInstanceExportTask(CreateInstanceExportTaskRequest createInstanceExportTaskRequest) {
ExecutionContext executionContext = createExecutionContext(createInstanceExportTaskRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<CreateInstanceExportTaskRequest> request = null;
Response<CreateInstanceExportTaskResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new CreateInstanceExportTaskRequestMarshaller().marshall(super.beforeMarshalling(createInstanceExportTaskRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<CreateInstanceExportTaskResult> responseHandler = new StaxResponseHandler<CreateInstanceExportTaskResult>(
new CreateInstanceExportTaskResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Creates an Internet gateway for use with a VPC. After creating the Internet gateway, you attach it to a VPC using
* <a>AttachInternetGateway</a>.
* </p>
* <p>
* For more information about your VPC and Internet gateway, see the <a
* href="http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/">Amazon Virtual Private Cloud User Guide</a>.
* </p>
*
* @param createInternetGatewayRequest
* Contains the parameters for CreateInternetGateway.
* @return Result of the CreateInternetGateway operation returned by the service.
* @sample AmazonEC2.CreateInternetGateway
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateInternetGateway" target="_top">AWS API
* Documentation</a>
*/
@Override
public CreateInternetGatewayResult createInternetGateway(CreateInternetGatewayRequest request) {
request = beforeClientExecution(request);
return executeCreateInternetGateway(request);
}
@SdkInternalApi
final CreateInternetGatewayResult executeCreateInternetGateway(CreateInternetGatewayRequest createInternetGatewayRequest) {
ExecutionContext executionContext = createExecutionContext(createInternetGatewayRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<CreateInternetGatewayRequest> request = null;
Response<CreateInternetGatewayResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new CreateInternetGatewayRequestMarshaller().marshall(super.beforeMarshalling(createInternetGatewayRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<CreateInternetGatewayResult> responseHandler = new StaxResponseHandler<CreateInternetGatewayResult>(
new CreateInternetGatewayResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
@Override
public CreateInternetGatewayResult createInternetGateway() {
return createInternetGateway(new CreateInternetGatewayRequest());
}
/**
* <p>
* Creates a 2048-bit RSA key pair with the specified name. Amazon EC2 stores the public key and displays the
* private key for you to save to a file. The private key is returned as an unencrypted PEM encoded PKCS#8 private
* key. If a key with the specified name already exists, Amazon EC2 returns an error.
* </p>
* <p>
* You can have up to five thousand key pairs per region.
* </p>
* <p>
* The key pair returned to you is available only in the region in which you create it. To create a key pair that is
* available in all regions, use <a>ImportKeyPair</a>.
* </p>
* <p>
* For more information about key pairs, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html">Key Pairs</a> in the <i>Amazon
* Elastic Compute Cloud User Guide</i>.
* </p>
*
* @param createKeyPairRequest
* Contains the parameters for CreateKeyPair.
* @return Result of the CreateKeyPair operation returned by the service.
* @sample AmazonEC2.CreateKeyPair
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateKeyPair" target="_top">AWS API
* Documentation</a>
*/
@Override
public CreateKeyPairResult createKeyPair(CreateKeyPairRequest request) {
request = beforeClientExecution(request);
return executeCreateKeyPair(request);
}
@SdkInternalApi
final CreateKeyPairResult executeCreateKeyPair(CreateKeyPairRequest createKeyPairRequest) {
ExecutionContext executionContext = createExecutionContext(createKeyPairRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<CreateKeyPairRequest> request = null;
Response<CreateKeyPairResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new CreateKeyPairRequestMarshaller().marshall(super.beforeMarshalling(createKeyPairRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<CreateKeyPairResult> responseHandler = new StaxResponseHandler<CreateKeyPairResult>(new CreateKeyPairResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Creates a NAT gateway in the specified subnet. A NAT gateway can be used to enable instances in a private subnet
* to connect to the Internet. This action creates a network interface in the specified subnet with a private IP
* address from the IP address range of the subnet. For more information, see <a
* href="http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-nat-gateway.html">NAT Gateways</a> in the
* <i>Amazon Virtual Private Cloud User Guide</i>.
* </p>
*
* @param createNatGatewayRequest
* Contains the parameters for CreateNatGateway.
* @return Result of the CreateNatGateway operation returned by the service.
* @sample AmazonEC2.CreateNatGateway
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateNatGateway" target="_top">AWS API
* Documentation</a>
*/
@Override
public CreateNatGatewayResult createNatGateway(CreateNatGatewayRequest request) {
request = beforeClientExecution(request);
return executeCreateNatGateway(request);
}
@SdkInternalApi
final CreateNatGatewayResult executeCreateNatGateway(CreateNatGatewayRequest createNatGatewayRequest) {
ExecutionContext executionContext = createExecutionContext(createNatGatewayRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<CreateNatGatewayRequest> request = null;
Response<CreateNatGatewayResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new CreateNatGatewayRequestMarshaller().marshall(super.beforeMarshalling(createNatGatewayRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<CreateNatGatewayResult> responseHandler = new StaxResponseHandler<CreateNatGatewayResult>(
new CreateNatGatewayResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Creates a network ACL in a VPC. Network ACLs provide an optional layer of security (in addition to security
* groups) for the instances in your VPC.
* </p>
* <p>
* For more information about network ACLs, see <a
* href="http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_ACLs.html">Network ACLs</a> in the <i>Amazon
* Virtual Private Cloud User Guide</i>.
* </p>
*
* @param createNetworkAclRequest
* Contains the parameters for CreateNetworkAcl.
* @return Result of the CreateNetworkAcl operation returned by the service.
* @sample AmazonEC2.CreateNetworkAcl
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateNetworkAcl" target="_top">AWS API
* Documentation</a>
*/
@Override
public CreateNetworkAclResult createNetworkAcl(CreateNetworkAclRequest request) {
request = beforeClientExecution(request);
return executeCreateNetworkAcl(request);
}
@SdkInternalApi
final CreateNetworkAclResult executeCreateNetworkAcl(CreateNetworkAclRequest createNetworkAclRequest) {
ExecutionContext executionContext = createExecutionContext(createNetworkAclRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<CreateNetworkAclRequest> request = null;
Response<CreateNetworkAclResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new CreateNetworkAclRequestMarshaller().marshall(super.beforeMarshalling(createNetworkAclRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<CreateNetworkAclResult> responseHandler = new StaxResponseHandler<CreateNetworkAclResult>(
new CreateNetworkAclResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Creates an entry (a rule) in a network ACL with the specified rule number. Each network ACL has a set of numbered
* ingress rules and a separate set of numbered egress rules. When determining whether a packet should be allowed in
* or out of a subnet associated with the ACL, we process the entries in the ACL according to the rule numbers, in
* ascending order. Each network ACL has a set of ingress rules and a separate set of egress rules.
* </p>
* <p>
* We recommend that you leave room between the rule numbers (for example, 100, 110, 120, ...), and not number them
* one right after the other (for example, 101, 102, 103, ...). This makes it easier to add a rule between existing
* ones without having to renumber the rules.
* </p>
* <p>
* After you add an entry, you can't modify it; you must either replace it, or create an entry and delete the old
* one.
* </p>
* <p>
* For more information about network ACLs, see <a
* href="http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_ACLs.html">Network ACLs</a> in the <i>Amazon
* Virtual Private Cloud User Guide</i>.
* </p>
*
* @param createNetworkAclEntryRequest
* Contains the parameters for CreateNetworkAclEntry.
* @return Result of the CreateNetworkAclEntry operation returned by the service.
* @sample AmazonEC2.CreateNetworkAclEntry
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateNetworkAclEntry" target="_top">AWS API
* Documentation</a>
*/
@Override
public CreateNetworkAclEntryResult createNetworkAclEntry(CreateNetworkAclEntryRequest request) {
request = beforeClientExecution(request);
return executeCreateNetworkAclEntry(request);
}
@SdkInternalApi
final CreateNetworkAclEntryResult executeCreateNetworkAclEntry(CreateNetworkAclEntryRequest createNetworkAclEntryRequest) {
ExecutionContext executionContext = createExecutionContext(createNetworkAclEntryRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<CreateNetworkAclEntryRequest> request = null;
Response<CreateNetworkAclEntryResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new CreateNetworkAclEntryRequestMarshaller().marshall(super.beforeMarshalling(createNetworkAclEntryRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<CreateNetworkAclEntryResult> responseHandler = new StaxResponseHandler<CreateNetworkAclEntryResult>(
new CreateNetworkAclEntryResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Creates a network interface in the specified subnet.
* </p>
* <p>
* For more information about network interfaces, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html">Elastic Network Interfaces</a> in the
* <i>Amazon Virtual Private Cloud User Guide</i>.
* </p>
*
* @param createNetworkInterfaceRequest
* Contains the parameters for CreateNetworkInterface.
* @return Result of the CreateNetworkInterface operation returned by the service.
* @sample AmazonEC2.CreateNetworkInterface
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateNetworkInterface" target="_top">AWS API
* Documentation</a>
*/
@Override
public CreateNetworkInterfaceResult createNetworkInterface(CreateNetworkInterfaceRequest request) {
request = beforeClientExecution(request);
return executeCreateNetworkInterface(request);
}
@SdkInternalApi
final CreateNetworkInterfaceResult executeCreateNetworkInterface(CreateNetworkInterfaceRequest createNetworkInterfaceRequest) {
ExecutionContext executionContext = createExecutionContext(createNetworkInterfaceRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<CreateNetworkInterfaceRequest> request = null;
Response<CreateNetworkInterfaceResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new CreateNetworkInterfaceRequestMarshaller().marshall(super.beforeMarshalling(createNetworkInterfaceRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<CreateNetworkInterfaceResult> responseHandler = new StaxResponseHandler<CreateNetworkInterfaceResult>(
new CreateNetworkInterfaceResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Creates a placement group that you launch cluster instances into. You must give the group a name that's unique
* within the scope of your account.
* </p>
* <p>
* For more information about placement groups and cluster instances, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using_cluster_computing.html">Cluster Instances</a> in
* the <i>Amazon Elastic Compute Cloud User Guide</i>.
* </p>
*
* @param createPlacementGroupRequest
* Contains the parameters for CreatePlacementGroup.
* @return Result of the CreatePlacementGroup operation returned by the service.
* @sample AmazonEC2.CreatePlacementGroup
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreatePlacementGroup" target="_top">AWS API
* Documentation</a>
*/
@Override
public CreatePlacementGroupResult createPlacementGroup(CreatePlacementGroupRequest request) {
request = beforeClientExecution(request);
return executeCreatePlacementGroup(request);
}
@SdkInternalApi
final CreatePlacementGroupResult executeCreatePlacementGroup(CreatePlacementGroupRequest createPlacementGroupRequest) {
ExecutionContext executionContext = createExecutionContext(createPlacementGroupRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<CreatePlacementGroupRequest> request = null;
Response<CreatePlacementGroupResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new CreatePlacementGroupRequestMarshaller().marshall(super.beforeMarshalling(createPlacementGroupRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<CreatePlacementGroupResult> responseHandler = new StaxResponseHandler<CreatePlacementGroupResult>(
new CreatePlacementGroupResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Creates a listing for Amazon EC2 Standard Reserved Instances to be sold in the Reserved Instance Marketplace. You
* can submit one Standard Reserved Instance listing at a time. To get a list of your Standard Reserved Instances,
* you can use the <a>DescribeReservedInstances</a> operation.
* </p>
* <note>
* <p>
* Only Standard Reserved Instances with a capacity reservation can be sold in the Reserved Instance Marketplace.
* Convertible Reserved Instances and Standard Reserved Instances with a regional benefit cannot be sold.
* </p>
* </note>
* <p>
* The Reserved Instance Marketplace matches sellers who want to resell Standard Reserved Instance capacity that
* they no longer need with buyers who want to purchase additional capacity. Reserved Instances bought and sold
* through the Reserved Instance Marketplace work like any other Reserved Instances.
* </p>
* <p>
* To sell your Standard Reserved Instances, you must first register as a seller in the Reserved Instance
* Marketplace. After completing the registration process, you can create a Reserved Instance Marketplace listing of
* some or all of your Standard Reserved Instances, and specify the upfront price to receive for them. Your Standard
* Reserved Instance listings then become available for purchase. To view the details of your Standard Reserved
* Instance listing, you can use the <a>DescribeReservedInstancesListings</a> operation.
* </p>
* <p>
* For more information, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-market-general.html">Reserved Instance
* Marketplace</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.
* </p>
*
* @param createReservedInstancesListingRequest
* Contains the parameters for CreateReservedInstancesListing.
* @return Result of the CreateReservedInstancesListing operation returned by the service.
* @sample AmazonEC2.CreateReservedInstancesListing
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateReservedInstancesListing"
* target="_top">AWS API Documentation</a>
*/
@Override
public CreateReservedInstancesListingResult createReservedInstancesListing(CreateReservedInstancesListingRequest request) {
request = beforeClientExecution(request);
return executeCreateReservedInstancesListing(request);
}
@SdkInternalApi
final CreateReservedInstancesListingResult executeCreateReservedInstancesListing(CreateReservedInstancesListingRequest createReservedInstancesListingRequest) {
ExecutionContext executionContext = createExecutionContext(createReservedInstancesListingRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<CreateReservedInstancesListingRequest> request = null;
Response<CreateReservedInstancesListingResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new CreateReservedInstancesListingRequestMarshaller().marshall(super.beforeMarshalling(createReservedInstancesListingRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<CreateReservedInstancesListingResult> responseHandler = new StaxResponseHandler<CreateReservedInstancesListingResult>(
new CreateReservedInstancesListingResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Creates a route in a route table within a VPC.
* </p>
* <p>
* You must specify one of the following targets: Internet gateway or virtual private gateway, NAT instance, NAT
* gateway, VPC peering connection, network interface, or egress-only Internet gateway.
* </p>
* <p>
* When determining how to route traffic, we use the route with the most specific match. For example, traffic is
* destined for the IPv4 address <code>192.0.2.3</code>, and the route table includes the following two IPv4 routes:
* </p>
* <ul>
* <li>
* <p>
* <code>192.0.2.0/24</code> (goes to some target A)
* </p>
* </li>
* <li>
* <p>
* <code>192.0.2.0/28</code> (goes to some target B)
* </p>
* </li>
* </ul>
* <p>
* Both routes apply to the traffic destined for <code>192.0.2.3</code>. However, the second route in the list
* covers a smaller number of IP addresses and is therefore more specific, so we use that route to determine where
* to target the traffic.
* </p>
* <p>
* For more information about route tables, see <a
* href="http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Route_Tables.html">Route Tables</a> in the
* <i>Amazon Virtual Private Cloud User Guide</i>.
* </p>
*
* @param createRouteRequest
* Contains the parameters for CreateRoute.
* @return Result of the CreateRoute operation returned by the service.
* @sample AmazonEC2.CreateRoute
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateRoute" target="_top">AWS API
* Documentation</a>
*/
@Override
public CreateRouteResult createRoute(CreateRouteRequest request) {
request = beforeClientExecution(request);
return executeCreateRoute(request);
}
@SdkInternalApi
final CreateRouteResult executeCreateRoute(CreateRouteRequest createRouteRequest) {
ExecutionContext executionContext = createExecutionContext(createRouteRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<CreateRouteRequest> request = null;
Response<CreateRouteResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new CreateRouteRequestMarshaller().marshall(super.beforeMarshalling(createRouteRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<CreateRouteResult> responseHandler = new StaxResponseHandler<CreateRouteResult>(new CreateRouteResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Creates a route table for the specified VPC. After you create a route table, you can add routes and associate the
* table with a subnet.
* </p>
* <p>
* For more information about route tables, see <a
* href="http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Route_Tables.html">Route Tables</a> in the
* <i>Amazon Virtual Private Cloud User Guide</i>.
* </p>
*
* @param createRouteTableRequest
* Contains the parameters for CreateRouteTable.
* @return Result of the CreateRouteTable operation returned by the service.
* @sample AmazonEC2.CreateRouteTable
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateRouteTable" target="_top">AWS API
* Documentation</a>
*/
@Override
public CreateRouteTableResult createRouteTable(CreateRouteTableRequest request) {
request = beforeClientExecution(request);
return executeCreateRouteTable(request);
}
@SdkInternalApi
final CreateRouteTableResult executeCreateRouteTable(CreateRouteTableRequest createRouteTableRequest) {
ExecutionContext executionContext = createExecutionContext(createRouteTableRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<CreateRouteTableRequest> request = null;
Response<CreateRouteTableResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new CreateRouteTableRequestMarshaller().marshall(super.beforeMarshalling(createRouteTableRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<CreateRouteTableResult> responseHandler = new StaxResponseHandler<CreateRouteTableResult>(
new CreateRouteTableResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Creates a security group.
* </p>
* <p>
* A security group is for use with instances either in the EC2-Classic platform or in a specific VPC. For more
* information, see <a href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html">Amazon
* EC2 Security Groups</a> in the <i>Amazon Elastic Compute Cloud User Guide</i> and <a
* href="http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_SecurityGroups.html">Security Groups for Your
* VPC</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.
* </p>
* <important>
* <p>
* EC2-Classic: You can have up to 500 security groups.
* </p>
* <p>
* EC2-VPC: You can create up to 500 security groups per VPC.
* </p>
* </important>
* <p>
* When you create a security group, you specify a friendly name of your choice. You can have a security group for
* use in EC2-Classic with the same name as a security group for use in a VPC. However, you can't have two security
* groups for use in EC2-Classic with the same name or two security groups for use in a VPC with the same name.
* </p>
* <p>
* You have a default security group for use in EC2-Classic and a default security group for use in your VPC. If you
* don't specify a security group when you launch an instance, the instance is launched into the appropriate default
* security group. A default security group includes a default rule that grants instances unrestricted network
* access to each other.
* </p>
* <p>
* You can add or remove rules from your security groups using <a>AuthorizeSecurityGroupIngress</a>,
* <a>AuthorizeSecurityGroupEgress</a>, <a>RevokeSecurityGroupIngress</a>, and <a>RevokeSecurityGroupEgress</a>.
* </p>
*
* @param createSecurityGroupRequest
* Contains the parameters for CreateSecurityGroup.
* @return Result of the CreateSecurityGroup operation returned by the service.
* @sample AmazonEC2.CreateSecurityGroup
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateSecurityGroup" target="_top">AWS API
* Documentation</a>
*/
@Override
public CreateSecurityGroupResult createSecurityGroup(CreateSecurityGroupRequest request) {
request = beforeClientExecution(request);
return executeCreateSecurityGroup(request);
}
@SdkInternalApi
final CreateSecurityGroupResult executeCreateSecurityGroup(CreateSecurityGroupRequest createSecurityGroupRequest) {
ExecutionContext executionContext = createExecutionContext(createSecurityGroupRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<CreateSecurityGroupRequest> request = null;
Response<CreateSecurityGroupResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new CreateSecurityGroupRequestMarshaller().marshall(super.beforeMarshalling(createSecurityGroupRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<CreateSecurityGroupResult> responseHandler = new StaxResponseHandler<CreateSecurityGroupResult>(
new CreateSecurityGroupResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Creates a snapshot of an EBS volume and stores it in Amazon S3. You can use snapshots for backups, to make copies
* of EBS volumes, and to save data before shutting down an instance.
* </p>
* <p>
* When a snapshot is created, any AWS Marketplace product codes that are associated with the source volume are
* propagated to the snapshot.
* </p>
* <p>
* You can take a snapshot of an attached volume that is in use. However, snapshots only capture data that has been
* written to your EBS volume at the time the snapshot command is issued; this may exclude any data that has been
* cached by any applications or the operating system. If you can pause any file systems on the volume long enough
* to take a snapshot, your snapshot should be complete. However, if you cannot pause all file writes to the volume,
* you should unmount the volume from within the instance, issue the snapshot command, and then remount the volume
* to ensure a consistent and complete snapshot. You may remount and use your volume while the snapshot status is
* <code>pending</code>.
* </p>
* <p>
* To create a snapshot for EBS volumes that serve as root devices, you should stop the instance before taking the
* snapshot.
* </p>
* <p>
* Snapshots that are taken from encrypted volumes are automatically encrypted. Volumes that are created from
* encrypted snapshots are also automatically encrypted. Your encrypted volumes and any associated snapshots always
* remain protected.
* </p>
* <p>
* For more information, see <a href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html">Amazon
* Elastic Block Store</a> and <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html">Amazon EBS Encryption</a> in the
* <i>Amazon Elastic Compute Cloud User Guide</i>.
* </p>
*
* @param createSnapshotRequest
* Contains the parameters for CreateSnapshot.
* @return Result of the CreateSnapshot operation returned by the service.
* @sample AmazonEC2.CreateSnapshot
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateSnapshot" target="_top">AWS API
* Documentation</a>
*/
@Override
public CreateSnapshotResult createSnapshot(CreateSnapshotRequest request) {
request = beforeClientExecution(request);
return executeCreateSnapshot(request);
}
@SdkInternalApi
final CreateSnapshotResult executeCreateSnapshot(CreateSnapshotRequest createSnapshotRequest) {
ExecutionContext executionContext = createExecutionContext(createSnapshotRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<CreateSnapshotRequest> request = null;
Response<CreateSnapshotResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new CreateSnapshotRequestMarshaller().marshall(super.beforeMarshalling(createSnapshotRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<CreateSnapshotResult> responseHandler = new StaxResponseHandler<CreateSnapshotResult>(
new CreateSnapshotResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Creates a data feed for Spot instances, enabling you to view Spot instance usage logs. You can create one data
* feed per AWS account. For more information, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-data-feeds.html">Spot Instance Data Feed</a> in the
* <i>Amazon Elastic Compute Cloud User Guide</i>.
* </p>
*
* @param createSpotDatafeedSubscriptionRequest
* Contains the parameters for CreateSpotDatafeedSubscription.
* @return Result of the CreateSpotDatafeedSubscription operation returned by the service.
* @sample AmazonEC2.CreateSpotDatafeedSubscription
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateSpotDatafeedSubscription"
* target="_top">AWS API Documentation</a>
*/
@Override
public CreateSpotDatafeedSubscriptionResult createSpotDatafeedSubscription(CreateSpotDatafeedSubscriptionRequest request) {
request = beforeClientExecution(request);
return executeCreateSpotDatafeedSubscription(request);
}
@SdkInternalApi
final CreateSpotDatafeedSubscriptionResult executeCreateSpotDatafeedSubscription(CreateSpotDatafeedSubscriptionRequest createSpotDatafeedSubscriptionRequest) {
ExecutionContext executionContext = createExecutionContext(createSpotDatafeedSubscriptionRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<CreateSpotDatafeedSubscriptionRequest> request = null;
Response<CreateSpotDatafeedSubscriptionResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new CreateSpotDatafeedSubscriptionRequestMarshaller().marshall(super.beforeMarshalling(createSpotDatafeedSubscriptionRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<CreateSpotDatafeedSubscriptionResult> responseHandler = new StaxResponseHandler<CreateSpotDatafeedSubscriptionResult>(
new CreateSpotDatafeedSubscriptionResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Creates a subnet in an existing VPC.
* </p>
* <p>
* When you create each subnet, you provide the VPC ID and the CIDR block you want for the subnet. After you create
* a subnet, you can't change its CIDR block. The subnet's IPv4 CIDR block can be the same as the VPC's IPv4 CIDR
* block (assuming you want only a single subnet in the VPC), or a subset of the VPC's IPv4 CIDR block. If you
* create more than one subnet in a VPC, the subnets' CIDR blocks must not overlap. The smallest IPv4 subnet (and
* VPC) you can create uses a /28 netmask (16 IPv4 addresses), and the largest uses a /16 netmask (65,536 IPv4
* addresses).
* </p>
* <p>
* If you've associated an IPv6 CIDR block with your VPC, you can create a subnet with an IPv6 CIDR block that uses
* a /64 prefix length.
* </p>
* <important>
* <p>
* AWS reserves both the first four and the last IPv4 address in each subnet's CIDR block. They're not available for
* use.
* </p>
* </important>
* <p>
* If you add more than one subnet to a VPC, they're set up in a star topology with a logical router in the middle.
* </p>
* <p>
* If you launch an instance in a VPC using an Amazon EBS-backed AMI, the IP address doesn't change if you stop and
* restart the instance (unlike a similar instance launched outside a VPC, which gets a new IP address when
* restarted). It's therefore possible to have a subnet with no running instances (they're all stopped), but no
* remaining IP addresses available.
* </p>
* <p>
* For more information about subnets, see <a
* href="http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Subnets.html">Your VPC and Subnets</a> in the
* <i>Amazon Virtual Private Cloud User Guide</i>.
* </p>
*
* @param createSubnetRequest
* Contains the parameters for CreateSubnet.
* @return Result of the CreateSubnet operation returned by the service.
* @sample AmazonEC2.CreateSubnet
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateSubnet" target="_top">AWS API
* Documentation</a>
*/
@Override
public CreateSubnetResult createSubnet(CreateSubnetRequest request) {
request = beforeClientExecution(request);
return executeCreateSubnet(request);
}
@SdkInternalApi
final CreateSubnetResult executeCreateSubnet(CreateSubnetRequest createSubnetRequest) {
ExecutionContext executionContext = createExecutionContext(createSubnetRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<CreateSubnetRequest> request = null;
Response<CreateSubnetResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new CreateSubnetRequestMarshaller().marshall(super.beforeMarshalling(createSubnetRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<CreateSubnetResult> responseHandler = new StaxResponseHandler<CreateSubnetResult>(new CreateSubnetResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Adds or overwrites one or more tags for the specified Amazon EC2 resource or resources. Each resource can have a
* maximum of 50 tags. Each tag consists of a key and optional value. Tag keys must be unique per resource.
* </p>
* <p>
* For more information about tags, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html">Tagging Your Resources</a> in the
* <i>Amazon Elastic Compute Cloud User Guide</i>. For more information about creating IAM policies that control
* users' access to resources based on tags, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-supported-iam-actions-resources.html">Supported
* Resource-Level Permissions for Amazon EC2 API Actions</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.
* </p>
*
* @param createTagsRequest
* Contains the parameters for CreateTags.
* @return Result of the CreateTags operation returned by the service.
* @sample AmazonEC2.CreateTags
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateTags" target="_top">AWS API
* Documentation</a>
*/
@Override
public CreateTagsResult createTags(CreateTagsRequest request) {
request = beforeClientExecution(request);
return executeCreateTags(request);
}
@SdkInternalApi
final CreateTagsResult executeCreateTags(CreateTagsRequest createTagsRequest) {
ExecutionContext executionContext = createExecutionContext(createTagsRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<CreateTagsRequest> request = null;
Response<CreateTagsResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new CreateTagsRequestMarshaller().marshall(super.beforeMarshalling(createTagsRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<CreateTagsResult> responseHandler = new StaxResponseHandler<CreateTagsResult>(new CreateTagsResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Creates an EBS volume that can be attached to an instance in the same Availability Zone. The volume is created in
* the regional endpoint that you send the HTTP request to. For more information see <a
* href="http://docs.aws.amazon.com/general/latest/gr/rande.html">Regions and Endpoints</a>.
* </p>
* <p>
* You can create a new empty volume or restore a volume from an EBS snapshot. Any AWS Marketplace product codes
* from the snapshot are propagated to the volume.
* </p>
* <p>
* You can create encrypted volumes with the <code>Encrypted</code> parameter. Encrypted volumes may only be
* attached to instances that support Amazon EBS encryption. Volumes that are created from encrypted snapshots are
* also automatically encrypted. For more information, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html">Amazon EBS Encryption</a> in the
* <i>Amazon Elastic Compute Cloud User Guide</i>.
* </p>
* <p>
* You can tag your volumes during creation. For more information, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html">Tagging Your Amazon EC2 Resources</a>.
* </p>
* <p>
* For more information, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-creating-volume.html">Creating an Amazon EBS
* Volume</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.
* </p>
*
* @param createVolumeRequest
* Contains the parameters for CreateVolume.
* @return Result of the CreateVolume operation returned by the service.
* @sample AmazonEC2.CreateVolume
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateVolume" target="_top">AWS API
* Documentation</a>
*/
@Override
public CreateVolumeResult createVolume(CreateVolumeRequest request) {
request = beforeClientExecution(request);
return executeCreateVolume(request);
}
@SdkInternalApi
final CreateVolumeResult executeCreateVolume(CreateVolumeRequest createVolumeRequest) {
ExecutionContext executionContext = createExecutionContext(createVolumeRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<CreateVolumeRequest> request = null;
Response<CreateVolumeResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new CreateVolumeRequestMarshaller().marshall(super.beforeMarshalling(createVolumeRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<CreateVolumeResult> responseHandler = new StaxResponseHandler<CreateVolumeResult>(new CreateVolumeResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Creates a VPC with the specified IPv4 CIDR block. The smallest VPC you can create uses a /28 netmask (16 IPv4
* addresses), and the largest uses a /16 netmask (65,536 IPv4 addresses). To help you decide how big to make your
* VPC, see <a href="http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Subnets.html">Your VPC and
* Subnets</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.
* </p>
* <p>
* You can optionally request an Amazon-provided IPv6 CIDR block for the VPC. The IPv6 CIDR block uses a /56 prefix
* length, and is allocated from Amazon's pool of IPv6 addresses. You cannot choose the IPv6 range for your VPC.
* </p>
* <p>
* By default, each instance you launch in the VPC has the default DHCP options, which includes only a default DNS
* server that we provide (AmazonProvidedDNS). For more information about DHCP options, see <a
* href="http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_DHCP_Options.html">DHCP Options Sets</a> in the
* <i>Amazon Virtual Private Cloud User Guide</i>.
* </p>
* <p>
* You can specify the instance tenancy value for the VPC when you create it. You can't change this value for the
* VPC after you create it. For more information, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-instance.html">Dedicated Instances</a> in the
* <i>Amazon Elastic Compute Cloud User Guide</i>.
* </p>
*
* @param createVpcRequest
* Contains the parameters for CreateVpc.
* @return Result of the CreateVpc operation returned by the service.
* @sample AmazonEC2.CreateVpc
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateVpc" target="_top">AWS API
* Documentation</a>
*/
@Override
public CreateVpcResult createVpc(CreateVpcRequest request) {
request = beforeClientExecution(request);
return executeCreateVpc(request);
}
@SdkInternalApi
final CreateVpcResult executeCreateVpc(CreateVpcRequest createVpcRequest) {
ExecutionContext executionContext = createExecutionContext(createVpcRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<CreateVpcRequest> request = null;
Response<CreateVpcResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new CreateVpcRequestMarshaller().marshall(super.beforeMarshalling(createVpcRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<CreateVpcResult> responseHandler = new StaxResponseHandler<CreateVpcResult>(new CreateVpcResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Creates a VPC endpoint for a specified AWS service. An endpoint enables you to create a private connection
* between your VPC and another AWS service in your account. You can specify an endpoint policy to attach to the
* endpoint that will control access to the service from your VPC. You can also specify the VPC route tables that
* use the endpoint.
* </p>
* <p>
* Use <a>DescribeVpcEndpointServices</a> to get a list of supported AWS services.
* </p>
*
* @param createVpcEndpointRequest
* Contains the parameters for CreateVpcEndpoint.
* @return Result of the CreateVpcEndpoint operation returned by the service.
* @sample AmazonEC2.CreateVpcEndpoint
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateVpcEndpoint" target="_top">AWS API
* Documentation</a>
*/
@Override
public CreateVpcEndpointResult createVpcEndpoint(CreateVpcEndpointRequest request) {
request = beforeClientExecution(request);
return executeCreateVpcEndpoint(request);
}
@SdkInternalApi
final CreateVpcEndpointResult executeCreateVpcEndpoint(CreateVpcEndpointRequest createVpcEndpointRequest) {
ExecutionContext executionContext = createExecutionContext(createVpcEndpointRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<CreateVpcEndpointRequest> request = null;
Response<CreateVpcEndpointResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new CreateVpcEndpointRequestMarshaller().marshall(super.beforeMarshalling(createVpcEndpointRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<CreateVpcEndpointResult> responseHandler = new StaxResponseHandler<CreateVpcEndpointResult>(
new CreateVpcEndpointResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Requests a VPC peering connection between two VPCs: a requester VPC that you own and a peer VPC with which to
* create the connection. The peer VPC can belong to another AWS account. The requester VPC and peer VPC cannot have
* overlapping CIDR blocks.
* </p>
* <p>
* The owner of the peer VPC must accept the peering request to activate the peering connection. The VPC peering
* connection request expires after 7 days, after which it cannot be accepted or rejected.
* </p>
* <p>
* If you try to create a VPC peering connection between VPCs that have overlapping CIDR blocks, the VPC peering
* connection status goes to <code>failed</code>.
* </p>
*
* @param createVpcPeeringConnectionRequest
* Contains the parameters for CreateVpcPeeringConnection.
* @return Result of the CreateVpcPeeringConnection operation returned by the service.
* @sample AmazonEC2.CreateVpcPeeringConnection
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateVpcPeeringConnection" target="_top">AWS
* API Documentation</a>
*/
@Override
public CreateVpcPeeringConnectionResult createVpcPeeringConnection(CreateVpcPeeringConnectionRequest request) {
request = beforeClientExecution(request);
return executeCreateVpcPeeringConnection(request);
}
@SdkInternalApi
final CreateVpcPeeringConnectionResult executeCreateVpcPeeringConnection(CreateVpcPeeringConnectionRequest createVpcPeeringConnectionRequest) {
ExecutionContext executionContext = createExecutionContext(createVpcPeeringConnectionRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<CreateVpcPeeringConnectionRequest> request = null;
Response<CreateVpcPeeringConnectionResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new CreateVpcPeeringConnectionRequestMarshaller().marshall(super.beforeMarshalling(createVpcPeeringConnectionRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<CreateVpcPeeringConnectionResult> responseHandler = new StaxResponseHandler<CreateVpcPeeringConnectionResult>(
new CreateVpcPeeringConnectionResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
@Override
public CreateVpcPeeringConnectionResult createVpcPeeringConnection() {
return createVpcPeeringConnection(new CreateVpcPeeringConnectionRequest());
}
/**
* <p>
* Creates a VPN connection between an existing virtual private gateway and a VPN customer gateway. The only
* supported connection type is <code>ipsec.1</code>.
* </p>
* <p>
* The response includes information that you need to give to your network administrator to configure your customer
* gateway.
* </p>
* <important>
* <p>
* We strongly recommend that you use HTTPS when calling this operation because the response contains sensitive
* cryptographic information for configuring your customer gateway.
* </p>
* </important>
* <p>
* If you decide to shut down your VPN connection for any reason and later create a new VPN connection, you must
* reconfigure your customer gateway with the new information returned from this call.
* </p>
* <p>
* This is an idempotent operation. If you perform the operation more than once, Amazon EC2 doesn't return an error.
* </p>
* <p>
* For more information about VPN connections, see <a
* href="http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_VPN.html">Adding a Hardware Virtual Private
* Gateway to Your VPC</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.
* </p>
*
* @param createVpnConnectionRequest
* Contains the parameters for CreateVpnConnection.
* @return Result of the CreateVpnConnection operation returned by the service.
* @sample AmazonEC2.CreateVpnConnection
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateVpnConnection" target="_top">AWS API
* Documentation</a>
*/
@Override
public CreateVpnConnectionResult createVpnConnection(CreateVpnConnectionRequest request) {
request = beforeClientExecution(request);
return executeCreateVpnConnection(request);
}
@SdkInternalApi
final CreateVpnConnectionResult executeCreateVpnConnection(CreateVpnConnectionRequest createVpnConnectionRequest) {
ExecutionContext executionContext = createExecutionContext(createVpnConnectionRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<CreateVpnConnectionRequest> request = null;
Response<CreateVpnConnectionResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new CreateVpnConnectionRequestMarshaller().marshall(super.beforeMarshalling(createVpnConnectionRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<CreateVpnConnectionResult> responseHandler = new StaxResponseHandler<CreateVpnConnectionResult>(
new CreateVpnConnectionResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Creates a static route associated with a VPN connection between an existing virtual private gateway and a VPN
* customer gateway. The static route allows traffic to be routed from the virtual private gateway to the VPN
* customer gateway.
* </p>
* <p>
* For more information about VPN connections, see <a
* href="http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_VPN.html">Adding a Hardware Virtual Private
* Gateway to Your VPC</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.
* </p>
*
* @param createVpnConnectionRouteRequest
* Contains the parameters for CreateVpnConnectionRoute.
* @return Result of the CreateVpnConnectionRoute operation returned by the service.
* @sample AmazonEC2.CreateVpnConnectionRoute
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateVpnConnectionRoute" target="_top">AWS
* API Documentation</a>
*/
@Override
public CreateVpnConnectionRouteResult createVpnConnectionRoute(CreateVpnConnectionRouteRequest request) {
request = beforeClientExecution(request);
return executeCreateVpnConnectionRoute(request);
}
@SdkInternalApi
final CreateVpnConnectionRouteResult executeCreateVpnConnectionRoute(CreateVpnConnectionRouteRequest createVpnConnectionRouteRequest) {
ExecutionContext executionContext = createExecutionContext(createVpnConnectionRouteRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<CreateVpnConnectionRouteRequest> request = null;
Response<CreateVpnConnectionRouteResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new CreateVpnConnectionRouteRequestMarshaller().marshall(super.beforeMarshalling(createVpnConnectionRouteRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<CreateVpnConnectionRouteResult> responseHandler = new StaxResponseHandler<CreateVpnConnectionRouteResult>(
new CreateVpnConnectionRouteResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Creates a virtual private gateway. A virtual private gateway is the endpoint on the VPC side of your VPN
* connection. You can create a virtual private gateway before creating the VPC itself.
* </p>
* <p>
* For more information about virtual private gateways, see <a
* href="http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_VPN.html">Adding a Hardware Virtual Private
* Gateway to Your VPC</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.
* </p>
*
* @param createVpnGatewayRequest
* Contains the parameters for CreateVpnGateway.
* @return Result of the CreateVpnGateway operation returned by the service.
* @sample AmazonEC2.CreateVpnGateway
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateVpnGateway" target="_top">AWS API
* Documentation</a>
*/
@Override
public CreateVpnGatewayResult createVpnGateway(CreateVpnGatewayRequest request) {
request = beforeClientExecution(request);
return executeCreateVpnGateway(request);
}
@SdkInternalApi
final CreateVpnGatewayResult executeCreateVpnGateway(CreateVpnGatewayRequest createVpnGatewayRequest) {
ExecutionContext executionContext = createExecutionContext(createVpnGatewayRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<CreateVpnGatewayRequest> request = null;
Response<CreateVpnGatewayResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new CreateVpnGatewayRequestMarshaller().marshall(super.beforeMarshalling(createVpnGatewayRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<CreateVpnGatewayResult> responseHandler = new StaxResponseHandler<CreateVpnGatewayResult>(
new CreateVpnGatewayResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Deletes the specified customer gateway. You must delete the VPN connection before you can delete the customer
* gateway.
* </p>
*
* @param deleteCustomerGatewayRequest
* Contains the parameters for DeleteCustomerGateway.
* @return Result of the DeleteCustomerGateway operation returned by the service.
* @sample AmazonEC2.DeleteCustomerGateway
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteCustomerGateway" target="_top">AWS API
* Documentation</a>
*/
@Override
public DeleteCustomerGatewayResult deleteCustomerGateway(DeleteCustomerGatewayRequest request) {
request = beforeClientExecution(request);
return executeDeleteCustomerGateway(request);
}
@SdkInternalApi
final DeleteCustomerGatewayResult executeDeleteCustomerGateway(DeleteCustomerGatewayRequest deleteCustomerGatewayRequest) {
ExecutionContext executionContext = createExecutionContext(deleteCustomerGatewayRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DeleteCustomerGatewayRequest> request = null;
Response<DeleteCustomerGatewayResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DeleteCustomerGatewayRequestMarshaller().marshall(super.beforeMarshalling(deleteCustomerGatewayRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DeleteCustomerGatewayResult> responseHandler = new StaxResponseHandler<DeleteCustomerGatewayResult>(
new DeleteCustomerGatewayResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Deletes the specified set of DHCP options. You must disassociate the set of DHCP options before you can delete
* it. You can disassociate the set of DHCP options by associating either a new set of options or the default set of
* options with the VPC.
* </p>
*
* @param deleteDhcpOptionsRequest
* Contains the parameters for DeleteDhcpOptions.
* @return Result of the DeleteDhcpOptions operation returned by the service.
* @sample AmazonEC2.DeleteDhcpOptions
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteDhcpOptions" target="_top">AWS API
* Documentation</a>
*/
@Override
public DeleteDhcpOptionsResult deleteDhcpOptions(DeleteDhcpOptionsRequest request) {
request = beforeClientExecution(request);
return executeDeleteDhcpOptions(request);
}
@SdkInternalApi
final DeleteDhcpOptionsResult executeDeleteDhcpOptions(DeleteDhcpOptionsRequest deleteDhcpOptionsRequest) {
ExecutionContext executionContext = createExecutionContext(deleteDhcpOptionsRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DeleteDhcpOptionsRequest> request = null;
Response<DeleteDhcpOptionsResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DeleteDhcpOptionsRequestMarshaller().marshall(super.beforeMarshalling(deleteDhcpOptionsRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DeleteDhcpOptionsResult> responseHandler = new StaxResponseHandler<DeleteDhcpOptionsResult>(
new DeleteDhcpOptionsResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Deletes an egress-only Internet gateway.
* </p>
*
* @param deleteEgressOnlyInternetGatewayRequest
* @return Result of the DeleteEgressOnlyInternetGateway operation returned by the service.
* @sample AmazonEC2.DeleteEgressOnlyInternetGateway
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteEgressOnlyInternetGateway"
* target="_top">AWS API Documentation</a>
*/
@Override
public DeleteEgressOnlyInternetGatewayResult deleteEgressOnlyInternetGateway(DeleteEgressOnlyInternetGatewayRequest request) {
request = beforeClientExecution(request);
return executeDeleteEgressOnlyInternetGateway(request);
}
@SdkInternalApi
final DeleteEgressOnlyInternetGatewayResult executeDeleteEgressOnlyInternetGateway(
DeleteEgressOnlyInternetGatewayRequest deleteEgressOnlyInternetGatewayRequest) {
ExecutionContext executionContext = createExecutionContext(deleteEgressOnlyInternetGatewayRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DeleteEgressOnlyInternetGatewayRequest> request = null;
Response<DeleteEgressOnlyInternetGatewayResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DeleteEgressOnlyInternetGatewayRequestMarshaller().marshall(super.beforeMarshalling(deleteEgressOnlyInternetGatewayRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DeleteEgressOnlyInternetGatewayResult> responseHandler = new StaxResponseHandler<DeleteEgressOnlyInternetGatewayResult>(
new DeleteEgressOnlyInternetGatewayResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Deletes one or more flow logs.
* </p>
*
* @param deleteFlowLogsRequest
* Contains the parameters for DeleteFlowLogs.
* @return Result of the DeleteFlowLogs operation returned by the service.
* @sample AmazonEC2.DeleteFlowLogs
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteFlowLogs" target="_top">AWS API
* Documentation</a>
*/
@Override
public DeleteFlowLogsResult deleteFlowLogs(DeleteFlowLogsRequest request) {
request = beforeClientExecution(request);
return executeDeleteFlowLogs(request);
}
@SdkInternalApi
final DeleteFlowLogsResult executeDeleteFlowLogs(DeleteFlowLogsRequest deleteFlowLogsRequest) {
ExecutionContext executionContext = createExecutionContext(deleteFlowLogsRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DeleteFlowLogsRequest> request = null;
Response<DeleteFlowLogsResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DeleteFlowLogsRequestMarshaller().marshall(super.beforeMarshalling(deleteFlowLogsRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DeleteFlowLogsResult> responseHandler = new StaxResponseHandler<DeleteFlowLogsResult>(
new DeleteFlowLogsResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Deletes the specified Internet gateway. You must detach the Internet gateway from the VPC before you can delete
* it.
* </p>
*
* @param deleteInternetGatewayRequest
* Contains the parameters for DeleteInternetGateway.
* @return Result of the DeleteInternetGateway operation returned by the service.
* @sample AmazonEC2.DeleteInternetGateway
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteInternetGateway" target="_top">AWS API
* Documentation</a>
*/
@Override
public DeleteInternetGatewayResult deleteInternetGateway(DeleteInternetGatewayRequest request) {
request = beforeClientExecution(request);
return executeDeleteInternetGateway(request);
}
@SdkInternalApi
final DeleteInternetGatewayResult executeDeleteInternetGateway(DeleteInternetGatewayRequest deleteInternetGatewayRequest) {
ExecutionContext executionContext = createExecutionContext(deleteInternetGatewayRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DeleteInternetGatewayRequest> request = null;
Response<DeleteInternetGatewayResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DeleteInternetGatewayRequestMarshaller().marshall(super.beforeMarshalling(deleteInternetGatewayRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DeleteInternetGatewayResult> responseHandler = new StaxResponseHandler<DeleteInternetGatewayResult>(
new DeleteInternetGatewayResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Deletes the specified key pair, by removing the public key from Amazon EC2.
* </p>
*
* @param deleteKeyPairRequest
* Contains the parameters for DeleteKeyPair.
* @return Result of the DeleteKeyPair operation returned by the service.
* @sample AmazonEC2.DeleteKeyPair
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteKeyPair" target="_top">AWS API
* Documentation</a>
*/
@Override
public DeleteKeyPairResult deleteKeyPair(DeleteKeyPairRequest request) {
request = beforeClientExecution(request);
return executeDeleteKeyPair(request);
}
@SdkInternalApi
final DeleteKeyPairResult executeDeleteKeyPair(DeleteKeyPairRequest deleteKeyPairRequest) {
ExecutionContext executionContext = createExecutionContext(deleteKeyPairRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DeleteKeyPairRequest> request = null;
Response<DeleteKeyPairResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DeleteKeyPairRequestMarshaller().marshall(super.beforeMarshalling(deleteKeyPairRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DeleteKeyPairResult> responseHandler = new StaxResponseHandler<DeleteKeyPairResult>(new DeleteKeyPairResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Deletes the specified NAT gateway. Deleting a NAT gateway disassociates its Elastic IP address, but does not
* release the address from your account. Deleting a NAT gateway does not delete any NAT gateway routes in your
* route tables.
* </p>
*
* @param deleteNatGatewayRequest
* Contains the parameters for DeleteNatGateway.
* @return Result of the DeleteNatGateway operation returned by the service.
* @sample AmazonEC2.DeleteNatGateway
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteNatGateway" target="_top">AWS API
* Documentation</a>
*/
@Override
public DeleteNatGatewayResult deleteNatGateway(DeleteNatGatewayRequest request) {
request = beforeClientExecution(request);
return executeDeleteNatGateway(request);
}
@SdkInternalApi
final DeleteNatGatewayResult executeDeleteNatGateway(DeleteNatGatewayRequest deleteNatGatewayRequest) {
ExecutionContext executionContext = createExecutionContext(deleteNatGatewayRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DeleteNatGatewayRequest> request = null;
Response<DeleteNatGatewayResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DeleteNatGatewayRequestMarshaller().marshall(super.beforeMarshalling(deleteNatGatewayRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DeleteNatGatewayResult> responseHandler = new StaxResponseHandler<DeleteNatGatewayResult>(
new DeleteNatGatewayResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Deletes the specified network ACL. You can't delete the ACL if it's associated with any subnets. You can't delete
* the default network ACL.
* </p>
*
* @param deleteNetworkAclRequest
* Contains the parameters for DeleteNetworkAcl.
* @return Result of the DeleteNetworkAcl operation returned by the service.
* @sample AmazonEC2.DeleteNetworkAcl
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteNetworkAcl" target="_top">AWS API
* Documentation</a>
*/
@Override
public DeleteNetworkAclResult deleteNetworkAcl(DeleteNetworkAclRequest request) {
request = beforeClientExecution(request);
return executeDeleteNetworkAcl(request);
}
@SdkInternalApi
final DeleteNetworkAclResult executeDeleteNetworkAcl(DeleteNetworkAclRequest deleteNetworkAclRequest) {
ExecutionContext executionContext = createExecutionContext(deleteNetworkAclRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DeleteNetworkAclRequest> request = null;
Response<DeleteNetworkAclResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DeleteNetworkAclRequestMarshaller().marshall(super.beforeMarshalling(deleteNetworkAclRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DeleteNetworkAclResult> responseHandler = new StaxResponseHandler<DeleteNetworkAclResult>(
new DeleteNetworkAclResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Deletes the specified ingress or egress entry (rule) from the specified network ACL.
* </p>
*
* @param deleteNetworkAclEntryRequest
* Contains the parameters for DeleteNetworkAclEntry.
* @return Result of the DeleteNetworkAclEntry operation returned by the service.
* @sample AmazonEC2.DeleteNetworkAclEntry
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteNetworkAclEntry" target="_top">AWS API
* Documentation</a>
*/
@Override
public DeleteNetworkAclEntryResult deleteNetworkAclEntry(DeleteNetworkAclEntryRequest request) {
request = beforeClientExecution(request);
return executeDeleteNetworkAclEntry(request);
}
@SdkInternalApi
final DeleteNetworkAclEntryResult executeDeleteNetworkAclEntry(DeleteNetworkAclEntryRequest deleteNetworkAclEntryRequest) {
ExecutionContext executionContext = createExecutionContext(deleteNetworkAclEntryRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DeleteNetworkAclEntryRequest> request = null;
Response<DeleteNetworkAclEntryResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DeleteNetworkAclEntryRequestMarshaller().marshall(super.beforeMarshalling(deleteNetworkAclEntryRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DeleteNetworkAclEntryResult> responseHandler = new StaxResponseHandler<DeleteNetworkAclEntryResult>(
new DeleteNetworkAclEntryResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Deletes the specified network interface. You must detach the network interface before you can delete it.
* </p>
*
* @param deleteNetworkInterfaceRequest
* Contains the parameters for DeleteNetworkInterface.
* @return Result of the DeleteNetworkInterface operation returned by the service.
* @sample AmazonEC2.DeleteNetworkInterface
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteNetworkInterface" target="_top">AWS API
* Documentation</a>
*/
@Override
public DeleteNetworkInterfaceResult deleteNetworkInterface(DeleteNetworkInterfaceRequest request) {
request = beforeClientExecution(request);
return executeDeleteNetworkInterface(request);
}
@SdkInternalApi
final DeleteNetworkInterfaceResult executeDeleteNetworkInterface(DeleteNetworkInterfaceRequest deleteNetworkInterfaceRequest) {
ExecutionContext executionContext = createExecutionContext(deleteNetworkInterfaceRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DeleteNetworkInterfaceRequest> request = null;
Response<DeleteNetworkInterfaceResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DeleteNetworkInterfaceRequestMarshaller().marshall(super.beforeMarshalling(deleteNetworkInterfaceRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DeleteNetworkInterfaceResult> responseHandler = new StaxResponseHandler<DeleteNetworkInterfaceResult>(
new DeleteNetworkInterfaceResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Deletes the specified placement group. You must terminate all instances in the placement group before you can
* delete the placement group. For more information about placement groups and cluster instances, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using_cluster_computing.html">Cluster Instances</a> in
* the <i>Amazon Elastic Compute Cloud User Guide</i>.
* </p>
*
* @param deletePlacementGroupRequest
* Contains the parameters for DeletePlacementGroup.
* @return Result of the DeletePlacementGroup operation returned by the service.
* @sample AmazonEC2.DeletePlacementGroup
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeletePlacementGroup" target="_top">AWS API
* Documentation</a>
*/
@Override
public DeletePlacementGroupResult deletePlacementGroup(DeletePlacementGroupRequest request) {
request = beforeClientExecution(request);
return executeDeletePlacementGroup(request);
}
@SdkInternalApi
final DeletePlacementGroupResult executeDeletePlacementGroup(DeletePlacementGroupRequest deletePlacementGroupRequest) {
ExecutionContext executionContext = createExecutionContext(deletePlacementGroupRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DeletePlacementGroupRequest> request = null;
Response<DeletePlacementGroupResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DeletePlacementGroupRequestMarshaller().marshall(super.beforeMarshalling(deletePlacementGroupRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DeletePlacementGroupResult> responseHandler = new StaxResponseHandler<DeletePlacementGroupResult>(
new DeletePlacementGroupResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Deletes the specified route from the specified route table.
* </p>
*
* @param deleteRouteRequest
* Contains the parameters for DeleteRoute.
* @return Result of the DeleteRoute operation returned by the service.
* @sample AmazonEC2.DeleteRoute
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteRoute" target="_top">AWS API
* Documentation</a>
*/
@Override
public DeleteRouteResult deleteRoute(DeleteRouteRequest request) {
request = beforeClientExecution(request);
return executeDeleteRoute(request);
}
@SdkInternalApi
final DeleteRouteResult executeDeleteRoute(DeleteRouteRequest deleteRouteRequest) {
ExecutionContext executionContext = createExecutionContext(deleteRouteRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DeleteRouteRequest> request = null;
Response<DeleteRouteResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DeleteRouteRequestMarshaller().marshall(super.beforeMarshalling(deleteRouteRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DeleteRouteResult> responseHandler = new StaxResponseHandler<DeleteRouteResult>(new DeleteRouteResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Deletes the specified route table. You must disassociate the route table from any subnets before you can delete
* it. You can't delete the main route table.
* </p>
*
* @param deleteRouteTableRequest
* Contains the parameters for DeleteRouteTable.
* @return Result of the DeleteRouteTable operation returned by the service.
* @sample AmazonEC2.DeleteRouteTable
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteRouteTable" target="_top">AWS API
* Documentation</a>
*/
@Override
public DeleteRouteTableResult deleteRouteTable(DeleteRouteTableRequest request) {
request = beforeClientExecution(request);
return executeDeleteRouteTable(request);
}
@SdkInternalApi
final DeleteRouteTableResult executeDeleteRouteTable(DeleteRouteTableRequest deleteRouteTableRequest) {
ExecutionContext executionContext = createExecutionContext(deleteRouteTableRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DeleteRouteTableRequest> request = null;
Response<DeleteRouteTableResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DeleteRouteTableRequestMarshaller().marshall(super.beforeMarshalling(deleteRouteTableRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DeleteRouteTableResult> responseHandler = new StaxResponseHandler<DeleteRouteTableResult>(
new DeleteRouteTableResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Deletes a security group.
* </p>
* <p>
* If you attempt to delete a security group that is associated with an instance, or is referenced by another
* security group, the operation fails with <code>InvalidGroup.InUse</code> in EC2-Classic or
* <code>DependencyViolation</code> in EC2-VPC.
* </p>
*
* @param deleteSecurityGroupRequest
* Contains the parameters for DeleteSecurityGroup.
* @return Result of the DeleteSecurityGroup operation returned by the service.
* @sample AmazonEC2.DeleteSecurityGroup
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteSecurityGroup" target="_top">AWS API
* Documentation</a>
*/
@Override
public DeleteSecurityGroupResult deleteSecurityGroup(DeleteSecurityGroupRequest request) {
request = beforeClientExecution(request);
return executeDeleteSecurityGroup(request);
}
@SdkInternalApi
final DeleteSecurityGroupResult executeDeleteSecurityGroup(DeleteSecurityGroupRequest deleteSecurityGroupRequest) {
ExecutionContext executionContext = createExecutionContext(deleteSecurityGroupRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DeleteSecurityGroupRequest> request = null;
Response<DeleteSecurityGroupResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DeleteSecurityGroupRequestMarshaller().marshall(super.beforeMarshalling(deleteSecurityGroupRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DeleteSecurityGroupResult> responseHandler = new StaxResponseHandler<DeleteSecurityGroupResult>(
new DeleteSecurityGroupResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Deletes the specified snapshot.
* </p>
* <p>
* When you make periodic snapshots of a volume, the snapshots are incremental, and only the blocks on the device
* that have changed since your last snapshot are saved in the new snapshot. When you delete a snapshot, only the
* data not needed for any other snapshot is removed. So regardless of which prior snapshots have been deleted, all
* active snapshots will have access to all the information needed to restore the volume.
* </p>
* <p>
* You cannot delete a snapshot of the root device of an EBS volume used by a registered AMI. You must first
* de-register the AMI before you can delete the snapshot.
* </p>
* <p>
* For more information, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-deleting-snapshot.html">Deleting an Amazon EBS
* Snapshot</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.
* </p>
*
* @param deleteSnapshotRequest
* Contains the parameters for DeleteSnapshot.
* @return Result of the DeleteSnapshot operation returned by the service.
* @sample AmazonEC2.DeleteSnapshot
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteSnapshot" target="_top">AWS API
* Documentation</a>
*/
@Override
public DeleteSnapshotResult deleteSnapshot(DeleteSnapshotRequest request) {
request = beforeClientExecution(request);
return executeDeleteSnapshot(request);
}
@SdkInternalApi
final DeleteSnapshotResult executeDeleteSnapshot(DeleteSnapshotRequest deleteSnapshotRequest) {
ExecutionContext executionContext = createExecutionContext(deleteSnapshotRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DeleteSnapshotRequest> request = null;
Response<DeleteSnapshotResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DeleteSnapshotRequestMarshaller().marshall(super.beforeMarshalling(deleteSnapshotRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DeleteSnapshotResult> responseHandler = new StaxResponseHandler<DeleteSnapshotResult>(
new DeleteSnapshotResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Deletes the data feed for Spot instances.
* </p>
*
* @param deleteSpotDatafeedSubscriptionRequest
* Contains the parameters for DeleteSpotDatafeedSubscription.
* @return Result of the DeleteSpotDatafeedSubscription operation returned by the service.
* @sample AmazonEC2.DeleteSpotDatafeedSubscription
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteSpotDatafeedSubscription"
* target="_top">AWS API Documentation</a>
*/
@Override
public DeleteSpotDatafeedSubscriptionResult deleteSpotDatafeedSubscription(DeleteSpotDatafeedSubscriptionRequest request) {
request = beforeClientExecution(request);
return executeDeleteSpotDatafeedSubscription(request);
}
@SdkInternalApi
final DeleteSpotDatafeedSubscriptionResult executeDeleteSpotDatafeedSubscription(DeleteSpotDatafeedSubscriptionRequest deleteSpotDatafeedSubscriptionRequest) {
ExecutionContext executionContext = createExecutionContext(deleteSpotDatafeedSubscriptionRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DeleteSpotDatafeedSubscriptionRequest> request = null;
Response<DeleteSpotDatafeedSubscriptionResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DeleteSpotDatafeedSubscriptionRequestMarshaller().marshall(super.beforeMarshalling(deleteSpotDatafeedSubscriptionRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DeleteSpotDatafeedSubscriptionResult> responseHandler = new StaxResponseHandler<DeleteSpotDatafeedSubscriptionResult>(
new DeleteSpotDatafeedSubscriptionResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
@Override
public DeleteSpotDatafeedSubscriptionResult deleteSpotDatafeedSubscription() {
return deleteSpotDatafeedSubscription(new DeleteSpotDatafeedSubscriptionRequest());
}
/**
* <p>
* Deletes the specified subnet. You must terminate all running instances in the subnet before you can delete the
* subnet.
* </p>
*
* @param deleteSubnetRequest
* Contains the parameters for DeleteSubnet.
* @return Result of the DeleteSubnet operation returned by the service.
* @sample AmazonEC2.DeleteSubnet
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteSubnet" target="_top">AWS API
* Documentation</a>
*/
@Override
public DeleteSubnetResult deleteSubnet(DeleteSubnetRequest request) {
request = beforeClientExecution(request);
return executeDeleteSubnet(request);
}
@SdkInternalApi
final DeleteSubnetResult executeDeleteSubnet(DeleteSubnetRequest deleteSubnetRequest) {
ExecutionContext executionContext = createExecutionContext(deleteSubnetRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DeleteSubnetRequest> request = null;
Response<DeleteSubnetResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DeleteSubnetRequestMarshaller().marshall(super.beforeMarshalling(deleteSubnetRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DeleteSubnetResult> responseHandler = new StaxResponseHandler<DeleteSubnetResult>(new DeleteSubnetResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Deletes the specified set of tags from the specified set of resources. This call is designed to follow a
* <code>DescribeTags</code> request.
* </p>
* <p>
* For more information about tags, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html">Tagging Your Resources</a> in the
* <i>Amazon Elastic Compute Cloud User Guide</i>.
* </p>
*
* @param deleteTagsRequest
* Contains the parameters for DeleteTags.
* @return Result of the DeleteTags operation returned by the service.
* @sample AmazonEC2.DeleteTags
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteTags" target="_top">AWS API
* Documentation</a>
*/
@Override
public DeleteTagsResult deleteTags(DeleteTagsRequest request) {
request = beforeClientExecution(request);
return executeDeleteTags(request);
}
@SdkInternalApi
final DeleteTagsResult executeDeleteTags(DeleteTagsRequest deleteTagsRequest) {
ExecutionContext executionContext = createExecutionContext(deleteTagsRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DeleteTagsRequest> request = null;
Response<DeleteTagsResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DeleteTagsRequestMarshaller().marshall(super.beforeMarshalling(deleteTagsRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DeleteTagsResult> responseHandler = new StaxResponseHandler<DeleteTagsResult>(new DeleteTagsResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Deletes the specified EBS volume. The volume must be in the <code>available</code> state (not attached to an
* instance).
* </p>
* <note>
* <p>
* The volume may remain in the <code>deleting</code> state for several minutes.
* </p>
* </note>
* <p>
* For more information, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-deleting-volume.html">Deleting an Amazon EBS
* Volume</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.
* </p>
*
* @param deleteVolumeRequest
* Contains the parameters for DeleteVolume.
* @return Result of the DeleteVolume operation returned by the service.
* @sample AmazonEC2.DeleteVolume
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteVolume" target="_top">AWS API
* Documentation</a>
*/
@Override
public DeleteVolumeResult deleteVolume(DeleteVolumeRequest request) {
request = beforeClientExecution(request);
return executeDeleteVolume(request);
}
@SdkInternalApi
final DeleteVolumeResult executeDeleteVolume(DeleteVolumeRequest deleteVolumeRequest) {
ExecutionContext executionContext = createExecutionContext(deleteVolumeRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DeleteVolumeRequest> request = null;
Response<DeleteVolumeResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DeleteVolumeRequestMarshaller().marshall(super.beforeMarshalling(deleteVolumeRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DeleteVolumeResult> responseHandler = new StaxResponseHandler<DeleteVolumeResult>(new DeleteVolumeResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Deletes the specified VPC. You must detach or delete all gateways and resources that are associated with the VPC
* before you can delete it. For example, you must terminate all instances running in the VPC, delete all security
* groups associated with the VPC (except the default one), delete all route tables associated with the VPC (except
* the default one), and so on.
* </p>
*
* @param deleteVpcRequest
* Contains the parameters for DeleteVpc.
* @return Result of the DeleteVpc operation returned by the service.
* @sample AmazonEC2.DeleteVpc
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteVpc" target="_top">AWS API
* Documentation</a>
*/
@Override
public DeleteVpcResult deleteVpc(DeleteVpcRequest request) {
request = beforeClientExecution(request);
return executeDeleteVpc(request);
}
@SdkInternalApi
final DeleteVpcResult executeDeleteVpc(DeleteVpcRequest deleteVpcRequest) {
ExecutionContext executionContext = createExecutionContext(deleteVpcRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DeleteVpcRequest> request = null;
Response<DeleteVpcResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DeleteVpcRequestMarshaller().marshall(super.beforeMarshalling(deleteVpcRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DeleteVpcResult> responseHandler = new StaxResponseHandler<DeleteVpcResult>(new DeleteVpcResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Deletes one or more specified VPC endpoints. Deleting the endpoint also deletes the endpoint routes in the route
* tables that were associated with the endpoint.
* </p>
*
* @param deleteVpcEndpointsRequest
* Contains the parameters for DeleteVpcEndpoints.
* @return Result of the DeleteVpcEndpoints operation returned by the service.
* @sample AmazonEC2.DeleteVpcEndpoints
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteVpcEndpoints" target="_top">AWS API
* Documentation</a>
*/
@Override
public DeleteVpcEndpointsResult deleteVpcEndpoints(DeleteVpcEndpointsRequest request) {
request = beforeClientExecution(request);
return executeDeleteVpcEndpoints(request);
}
@SdkInternalApi
final DeleteVpcEndpointsResult executeDeleteVpcEndpoints(DeleteVpcEndpointsRequest deleteVpcEndpointsRequest) {
ExecutionContext executionContext = createExecutionContext(deleteVpcEndpointsRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DeleteVpcEndpointsRequest> request = null;
Response<DeleteVpcEndpointsResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DeleteVpcEndpointsRequestMarshaller().marshall(super.beforeMarshalling(deleteVpcEndpointsRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DeleteVpcEndpointsResult> responseHandler = new StaxResponseHandler<DeleteVpcEndpointsResult>(
new DeleteVpcEndpointsResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Deletes a VPC peering connection. Either the owner of the requester VPC or the owner of the peer VPC can delete
* the VPC peering connection if it's in the <code>active</code> state. The owner of the requester VPC can delete a
* VPC peering connection in the <code>pending-acceptance</code> state.
* </p>
*
* @param deleteVpcPeeringConnectionRequest
* Contains the parameters for DeleteVpcPeeringConnection.
* @return Result of the DeleteVpcPeeringConnection operation returned by the service.
* @sample AmazonEC2.DeleteVpcPeeringConnection
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteVpcPeeringConnection" target="_top">AWS
* API Documentation</a>
*/
@Override
public DeleteVpcPeeringConnectionResult deleteVpcPeeringConnection(DeleteVpcPeeringConnectionRequest request) {
request = beforeClientExecution(request);
return executeDeleteVpcPeeringConnection(request);
}
@SdkInternalApi
final DeleteVpcPeeringConnectionResult executeDeleteVpcPeeringConnection(DeleteVpcPeeringConnectionRequest deleteVpcPeeringConnectionRequest) {
ExecutionContext executionContext = createExecutionContext(deleteVpcPeeringConnectionRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DeleteVpcPeeringConnectionRequest> request = null;
Response<DeleteVpcPeeringConnectionResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DeleteVpcPeeringConnectionRequestMarshaller().marshall(super.beforeMarshalling(deleteVpcPeeringConnectionRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DeleteVpcPeeringConnectionResult> responseHandler = new StaxResponseHandler<DeleteVpcPeeringConnectionResult>(
new DeleteVpcPeeringConnectionResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Deletes the specified VPN connection.
* </p>
* <p>
* If you're deleting the VPC and its associated components, we recommend that you detach the virtual private
* gateway from the VPC and delete the VPC before deleting the VPN connection. If you believe that the tunnel
* credentials for your VPN connection have been compromised, you can delete the VPN connection and create a new one
* that has new keys, without needing to delete the VPC or virtual private gateway. If you create a new VPN
* connection, you must reconfigure the customer gateway using the new configuration information returned with the
* new VPN connection ID.
* </p>
*
* @param deleteVpnConnectionRequest
* Contains the parameters for DeleteVpnConnection.
* @return Result of the DeleteVpnConnection operation returned by the service.
* @sample AmazonEC2.DeleteVpnConnection
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteVpnConnection" target="_top">AWS API
* Documentation</a>
*/
@Override
public DeleteVpnConnectionResult deleteVpnConnection(DeleteVpnConnectionRequest request) {
request = beforeClientExecution(request);
return executeDeleteVpnConnection(request);
}
@SdkInternalApi
final DeleteVpnConnectionResult executeDeleteVpnConnection(DeleteVpnConnectionRequest deleteVpnConnectionRequest) {
ExecutionContext executionContext = createExecutionContext(deleteVpnConnectionRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DeleteVpnConnectionRequest> request = null;
Response<DeleteVpnConnectionResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DeleteVpnConnectionRequestMarshaller().marshall(super.beforeMarshalling(deleteVpnConnectionRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DeleteVpnConnectionResult> responseHandler = new StaxResponseHandler<DeleteVpnConnectionResult>(
new DeleteVpnConnectionResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Deletes the specified static route associated with a VPN connection between an existing virtual private gateway
* and a VPN customer gateway. The static route allows traffic to be routed from the virtual private gateway to the
* VPN customer gateway.
* </p>
*
* @param deleteVpnConnectionRouteRequest
* Contains the parameters for DeleteVpnConnectionRoute.
* @return Result of the DeleteVpnConnectionRoute operation returned by the service.
* @sample AmazonEC2.DeleteVpnConnectionRoute
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteVpnConnectionRoute" target="_top">AWS
* API Documentation</a>
*/
@Override
public DeleteVpnConnectionRouteResult deleteVpnConnectionRoute(DeleteVpnConnectionRouteRequest request) {
request = beforeClientExecution(request);
return executeDeleteVpnConnectionRoute(request);
}
@SdkInternalApi
final DeleteVpnConnectionRouteResult executeDeleteVpnConnectionRoute(DeleteVpnConnectionRouteRequest deleteVpnConnectionRouteRequest) {
ExecutionContext executionContext = createExecutionContext(deleteVpnConnectionRouteRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DeleteVpnConnectionRouteRequest> request = null;
Response<DeleteVpnConnectionRouteResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DeleteVpnConnectionRouteRequestMarshaller().marshall(super.beforeMarshalling(deleteVpnConnectionRouteRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DeleteVpnConnectionRouteResult> responseHandler = new StaxResponseHandler<DeleteVpnConnectionRouteResult>(
new DeleteVpnConnectionRouteResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Deletes the specified virtual private gateway. We recommend that before you delete a virtual private gateway, you
* detach it from the VPC and delete the VPN connection. Note that you don't need to delete the virtual private
* gateway if you plan to delete and recreate the VPN connection between your VPC and your network.
* </p>
*
* @param deleteVpnGatewayRequest
* Contains the parameters for DeleteVpnGateway.
* @return Result of the DeleteVpnGateway operation returned by the service.
* @sample AmazonEC2.DeleteVpnGateway
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteVpnGateway" target="_top">AWS API
* Documentation</a>
*/
@Override
public DeleteVpnGatewayResult deleteVpnGateway(DeleteVpnGatewayRequest request) {
request = beforeClientExecution(request);
return executeDeleteVpnGateway(request);
}
@SdkInternalApi
final DeleteVpnGatewayResult executeDeleteVpnGateway(DeleteVpnGatewayRequest deleteVpnGatewayRequest) {
ExecutionContext executionContext = createExecutionContext(deleteVpnGatewayRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DeleteVpnGatewayRequest> request = null;
Response<DeleteVpnGatewayResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DeleteVpnGatewayRequestMarshaller().marshall(super.beforeMarshalling(deleteVpnGatewayRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DeleteVpnGatewayResult> responseHandler = new StaxResponseHandler<DeleteVpnGatewayResult>(
new DeleteVpnGatewayResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Deregisters the specified AMI. After you deregister an AMI, it can't be used to launch new instances.
* </p>
* <p>
* This command does not delete the AMI.
* </p>
*
* @param deregisterImageRequest
* Contains the parameters for DeregisterImage.
* @return Result of the DeregisterImage operation returned by the service.
* @sample AmazonEC2.DeregisterImage
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeregisterImage" target="_top">AWS API
* Documentation</a>
*/
@Override
public DeregisterImageResult deregisterImage(DeregisterImageRequest request) {
request = beforeClientExecution(request);
return executeDeregisterImage(request);
}
@SdkInternalApi
final DeregisterImageResult executeDeregisterImage(DeregisterImageRequest deregisterImageRequest) {
ExecutionContext executionContext = createExecutionContext(deregisterImageRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DeregisterImageRequest> request = null;
Response<DeregisterImageResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DeregisterImageRequestMarshaller().marshall(super.beforeMarshalling(deregisterImageRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DeregisterImageResult> responseHandler = new StaxResponseHandler<DeregisterImageResult>(
new DeregisterImageResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Describes attributes of your AWS account. The following are the supported account attributes:
* </p>
* <ul>
* <li>
* <p>
* <code>supported-platforms</code>: Indicates whether your account can launch instances into EC2-Classic and
* EC2-VPC, or only into EC2-VPC.
* </p>
* </li>
* <li>
* <p>
* <code>default-vpc</code>: The ID of the default VPC for your account, or <code>none</code>.
* </p>
* </li>
* <li>
* <p>
* <code>max-instances</code>: The maximum number of On-Demand instances that you can run.
* </p>
* </li>
* <li>
* <p>
* <code>vpc-max-security-groups-per-interface</code>: The maximum number of security groups that you can assign to
* a network interface.
* </p>
* </li>
* <li>
* <p>
* <code>max-elastic-ips</code>: The maximum number of Elastic IP addresses that you can allocate for use with
* EC2-Classic.
* </p>
* </li>
* <li>
* <p>
* <code>vpc-max-elastic-ips</code>: The maximum number of Elastic IP addresses that you can allocate for use with
* EC2-VPC.
* </p>
* </li>
* </ul>
*
* @param describeAccountAttributesRequest
* Contains the parameters for DescribeAccountAttributes.
* @return Result of the DescribeAccountAttributes operation returned by the service.
* @sample AmazonEC2.DescribeAccountAttributes
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeAccountAttributes" target="_top">AWS
* API Documentation</a>
*/
@Override
public DescribeAccountAttributesResult describeAccountAttributes(DescribeAccountAttributesRequest request) {
request = beforeClientExecution(request);
return executeDescribeAccountAttributes(request);
}
@SdkInternalApi
final DescribeAccountAttributesResult executeDescribeAccountAttributes(DescribeAccountAttributesRequest describeAccountAttributesRequest) {
ExecutionContext executionContext = createExecutionContext(describeAccountAttributesRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DescribeAccountAttributesRequest> request = null;
Response<DescribeAccountAttributesResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DescribeAccountAttributesRequestMarshaller().marshall(super.beforeMarshalling(describeAccountAttributesRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DescribeAccountAttributesResult> responseHandler = new StaxResponseHandler<DescribeAccountAttributesResult>(
new DescribeAccountAttributesResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
@Override
public DescribeAccountAttributesResult describeAccountAttributes() {
return describeAccountAttributes(new DescribeAccountAttributesRequest());
}
/**
* <p>
* Describes one or more of your Elastic IP addresses.
* </p>
* <p>
* An Elastic IP address is for use in either the EC2-Classic platform or in a VPC. For more information, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html">Elastic IP Addresses</a>
* in the <i>Amazon Elastic Compute Cloud User Guide</i>.
* </p>
*
* @param describeAddressesRequest
* Contains the parameters for DescribeAddresses.
* @return Result of the DescribeAddresses operation returned by the service.
* @sample AmazonEC2.DescribeAddresses
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeAddresses" target="_top">AWS API
* Documentation</a>
*/
@Override
public DescribeAddressesResult describeAddresses(DescribeAddressesRequest request) {
request = beforeClientExecution(request);
return executeDescribeAddresses(request);
}
@SdkInternalApi
final DescribeAddressesResult executeDescribeAddresses(DescribeAddressesRequest describeAddressesRequest) {
ExecutionContext executionContext = createExecutionContext(describeAddressesRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DescribeAddressesRequest> request = null;
Response<DescribeAddressesResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DescribeAddressesRequestMarshaller().marshall(super.beforeMarshalling(describeAddressesRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DescribeAddressesResult> responseHandler = new StaxResponseHandler<DescribeAddressesResult>(
new DescribeAddressesResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
@Override
public DescribeAddressesResult describeAddresses() {
return describeAddresses(new DescribeAddressesRequest());
}
/**
* <p>
* Describes one or more of the Availability Zones that are available to you. The results include zones only for the
* region you're currently using. If there is an event impacting an Availability Zone, you can use this request to
* view the state and any provided message for that Availability Zone.
* </p>
* <p>
* For more information, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html">Regions and
* Availability Zones</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.
* </p>
*
* @param describeAvailabilityZonesRequest
* Contains the parameters for DescribeAvailabilityZones.
* @return Result of the DescribeAvailabilityZones operation returned by the service.
* @sample AmazonEC2.DescribeAvailabilityZones
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeAvailabilityZones" target="_top">AWS
* API Documentation</a>
*/
@Override
public DescribeAvailabilityZonesResult describeAvailabilityZones(DescribeAvailabilityZonesRequest request) {
request = beforeClientExecution(request);
return executeDescribeAvailabilityZones(request);
}
@SdkInternalApi
final DescribeAvailabilityZonesResult executeDescribeAvailabilityZones(DescribeAvailabilityZonesRequest describeAvailabilityZonesRequest) {
ExecutionContext executionContext = createExecutionContext(describeAvailabilityZonesRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DescribeAvailabilityZonesRequest> request = null;
Response<DescribeAvailabilityZonesResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DescribeAvailabilityZonesRequestMarshaller().marshall(super.beforeMarshalling(describeAvailabilityZonesRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DescribeAvailabilityZonesResult> responseHandler = new StaxResponseHandler<DescribeAvailabilityZonesResult>(
new DescribeAvailabilityZonesResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
@Override
public DescribeAvailabilityZonesResult describeAvailabilityZones() {
return describeAvailabilityZones(new DescribeAvailabilityZonesRequest());
}
/**
* <p>
* Describes one or more of your bundling tasks.
* </p>
* <note>
* <p>
* Completed bundle tasks are listed for only a limited time. If your bundle task is no longer in the list, you can
* still register an AMI from it. Just use <code>RegisterImage</code> with the Amazon S3 bucket name and image
* manifest name you provided to the bundle task.
* </p>
* </note>
*
* @param describeBundleTasksRequest
* Contains the parameters for DescribeBundleTasks.
* @return Result of the DescribeBundleTasks operation returned by the service.
* @sample AmazonEC2.DescribeBundleTasks
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeBundleTasks" target="_top">AWS API
* Documentation</a>
*/
@Override
public DescribeBundleTasksResult describeBundleTasks(DescribeBundleTasksRequest request) {
request = beforeClientExecution(request);
return executeDescribeBundleTasks(request);
}
@SdkInternalApi
final DescribeBundleTasksResult executeDescribeBundleTasks(DescribeBundleTasksRequest describeBundleTasksRequest) {
ExecutionContext executionContext = createExecutionContext(describeBundleTasksRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DescribeBundleTasksRequest> request = null;
Response<DescribeBundleTasksResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DescribeBundleTasksRequestMarshaller().marshall(super.beforeMarshalling(describeBundleTasksRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DescribeBundleTasksResult> responseHandler = new StaxResponseHandler<DescribeBundleTasksResult>(
new DescribeBundleTasksResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
@Override
public DescribeBundleTasksResult describeBundleTasks() {
return describeBundleTasks(new DescribeBundleTasksRequest());
}
/**
* <p>
* Describes one or more of your linked EC2-Classic instances. This request only returns information about
* EC2-Classic instances linked to a VPC through ClassicLink; you cannot use this request to return information
* about other instances.
* </p>
*
* @param describeClassicLinkInstancesRequest
* Contains the parameters for DescribeClassicLinkInstances.
* @return Result of the DescribeClassicLinkInstances operation returned by the service.
* @sample AmazonEC2.DescribeClassicLinkInstances
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeClassicLinkInstances"
* target="_top">AWS API Documentation</a>
*/
@Override
public DescribeClassicLinkInstancesResult describeClassicLinkInstances(DescribeClassicLinkInstancesRequest request) {
request = beforeClientExecution(request);
return executeDescribeClassicLinkInstances(request);
}
@SdkInternalApi
final DescribeClassicLinkInstancesResult executeDescribeClassicLinkInstances(DescribeClassicLinkInstancesRequest describeClassicLinkInstancesRequest) {
ExecutionContext executionContext = createExecutionContext(describeClassicLinkInstancesRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DescribeClassicLinkInstancesRequest> request = null;
Response<DescribeClassicLinkInstancesResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DescribeClassicLinkInstancesRequestMarshaller().marshall(super.beforeMarshalling(describeClassicLinkInstancesRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DescribeClassicLinkInstancesResult> responseHandler = new StaxResponseHandler<DescribeClassicLinkInstancesResult>(
new DescribeClassicLinkInstancesResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
@Override
public DescribeClassicLinkInstancesResult describeClassicLinkInstances() {
return describeClassicLinkInstances(new DescribeClassicLinkInstancesRequest());
}
/**
* <p>
* Describes one or more of your conversion tasks. For more information, see the <a
* href="http://docs.aws.amazon.com/vm-import/latest/userguide/">VM Import/Export User Guide</a>.
* </p>
* <p>
* For information about the import manifest referenced by this API action, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/APIReference/manifest.html">VM Import Manifest</a>.
* </p>
*
* @param describeConversionTasksRequest
* Contains the parameters for DescribeConversionTasks.
* @return Result of the DescribeConversionTasks operation returned by the service.
* @sample AmazonEC2.DescribeConversionTasks
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeConversionTasks" target="_top">AWS
* API Documentation</a>
*/
@Override
public DescribeConversionTasksResult describeConversionTasks(DescribeConversionTasksRequest request) {
request = beforeClientExecution(request);
return executeDescribeConversionTasks(request);
}
@SdkInternalApi
final DescribeConversionTasksResult executeDescribeConversionTasks(DescribeConversionTasksRequest describeConversionTasksRequest) {
ExecutionContext executionContext = createExecutionContext(describeConversionTasksRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DescribeConversionTasksRequest> request = null;
Response<DescribeConversionTasksResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DescribeConversionTasksRequestMarshaller().marshall(super.beforeMarshalling(describeConversionTasksRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DescribeConversionTasksResult> responseHandler = new StaxResponseHandler<DescribeConversionTasksResult>(
new DescribeConversionTasksResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
@Override
public DescribeConversionTasksResult describeConversionTasks() {
return describeConversionTasks(new DescribeConversionTasksRequest());
}
/**
* <p>
* Describes one or more of your VPN customer gateways.
* </p>
* <p>
* For more information about VPN customer gateways, see <a
* href="http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_VPN.html">Adding a Hardware Virtual Private
* Gateway to Your VPC</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.
* </p>
*
* @param describeCustomerGatewaysRequest
* Contains the parameters for DescribeCustomerGateways.
* @return Result of the DescribeCustomerGateways operation returned by the service.
* @sample AmazonEC2.DescribeCustomerGateways
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeCustomerGateways" target="_top">AWS
* API Documentation</a>
*/
@Override
public DescribeCustomerGatewaysResult describeCustomerGateways(DescribeCustomerGatewaysRequest request) {
request = beforeClientExecution(request);
return executeDescribeCustomerGateways(request);
}
@SdkInternalApi
final DescribeCustomerGatewaysResult executeDescribeCustomerGateways(DescribeCustomerGatewaysRequest describeCustomerGatewaysRequest) {
ExecutionContext executionContext = createExecutionContext(describeCustomerGatewaysRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DescribeCustomerGatewaysRequest> request = null;
Response<DescribeCustomerGatewaysResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DescribeCustomerGatewaysRequestMarshaller().marshall(super.beforeMarshalling(describeCustomerGatewaysRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DescribeCustomerGatewaysResult> responseHandler = new StaxResponseHandler<DescribeCustomerGatewaysResult>(
new DescribeCustomerGatewaysResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
@Override
public DescribeCustomerGatewaysResult describeCustomerGateways() {
return describeCustomerGateways(new DescribeCustomerGatewaysRequest());
}
/**
* <p>
* Describes one or more of your DHCP options sets.
* </p>
* <p>
* For more information about DHCP options sets, see <a
* href="http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_DHCP_Options.html">DHCP Options Sets</a> in the
* <i>Amazon Virtual Private Cloud User Guide</i>.
* </p>
*
* @param describeDhcpOptionsRequest
* Contains the parameters for DescribeDhcpOptions.
* @return Result of the DescribeDhcpOptions operation returned by the service.
* @sample AmazonEC2.DescribeDhcpOptions
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeDhcpOptions" target="_top">AWS API
* Documentation</a>
*/
@Override
public DescribeDhcpOptionsResult describeDhcpOptions(DescribeDhcpOptionsRequest request) {
request = beforeClientExecution(request);
return executeDescribeDhcpOptions(request);
}
@SdkInternalApi
final DescribeDhcpOptionsResult executeDescribeDhcpOptions(DescribeDhcpOptionsRequest describeDhcpOptionsRequest) {
ExecutionContext executionContext = createExecutionContext(describeDhcpOptionsRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DescribeDhcpOptionsRequest> request = null;
Response<DescribeDhcpOptionsResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DescribeDhcpOptionsRequestMarshaller().marshall(super.beforeMarshalling(describeDhcpOptionsRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DescribeDhcpOptionsResult> responseHandler = new StaxResponseHandler<DescribeDhcpOptionsResult>(
new DescribeDhcpOptionsResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
@Override
public DescribeDhcpOptionsResult describeDhcpOptions() {
return describeDhcpOptions(new DescribeDhcpOptionsRequest());
}
/**
* <p>
* Describes one or more of your egress-only Internet gateways.
* </p>
*
* @param describeEgressOnlyInternetGatewaysRequest
* @return Result of the DescribeEgressOnlyInternetGateways operation returned by the service.
* @sample AmazonEC2.DescribeEgressOnlyInternetGateways
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeEgressOnlyInternetGateways"
* target="_top">AWS API Documentation</a>
*/
@Override
public DescribeEgressOnlyInternetGatewaysResult describeEgressOnlyInternetGateways(DescribeEgressOnlyInternetGatewaysRequest request) {
request = beforeClientExecution(request);
return executeDescribeEgressOnlyInternetGateways(request);
}
@SdkInternalApi
final DescribeEgressOnlyInternetGatewaysResult executeDescribeEgressOnlyInternetGateways(
DescribeEgressOnlyInternetGatewaysRequest describeEgressOnlyInternetGatewaysRequest) {
ExecutionContext executionContext = createExecutionContext(describeEgressOnlyInternetGatewaysRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DescribeEgressOnlyInternetGatewaysRequest> request = null;
Response<DescribeEgressOnlyInternetGatewaysResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DescribeEgressOnlyInternetGatewaysRequestMarshaller()
.marshall(super.beforeMarshalling(describeEgressOnlyInternetGatewaysRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DescribeEgressOnlyInternetGatewaysResult> responseHandler = new StaxResponseHandler<DescribeEgressOnlyInternetGatewaysResult>(
new DescribeEgressOnlyInternetGatewaysResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Describes one or more of your export tasks.
* </p>
*
* @param describeExportTasksRequest
* Contains the parameters for DescribeExportTasks.
* @return Result of the DescribeExportTasks operation returned by the service.
* @sample AmazonEC2.DescribeExportTasks
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeExportTasks" target="_top">AWS API
* Documentation</a>
*/
@Override
public DescribeExportTasksResult describeExportTasks(DescribeExportTasksRequest request) {
request = beforeClientExecution(request);
return executeDescribeExportTasks(request);
}
@SdkInternalApi
final DescribeExportTasksResult executeDescribeExportTasks(DescribeExportTasksRequest describeExportTasksRequest) {
ExecutionContext executionContext = createExecutionContext(describeExportTasksRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DescribeExportTasksRequest> request = null;
Response<DescribeExportTasksResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DescribeExportTasksRequestMarshaller().marshall(super.beforeMarshalling(describeExportTasksRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DescribeExportTasksResult> responseHandler = new StaxResponseHandler<DescribeExportTasksResult>(
new DescribeExportTasksResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
@Override
public DescribeExportTasksResult describeExportTasks() {
return describeExportTasks(new DescribeExportTasksRequest());
}
/**
* <p>
* Describes one or more flow logs. To view the information in your flow logs (the log streams for the network
* interfaces), you must use the CloudWatch Logs console or the CloudWatch Logs API.
* </p>
*
* @param describeFlowLogsRequest
* Contains the parameters for DescribeFlowLogs.
* @return Result of the DescribeFlowLogs operation returned by the service.
* @sample AmazonEC2.DescribeFlowLogs
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeFlowLogs" target="_top">AWS API
* Documentation</a>
*/
@Override
public DescribeFlowLogsResult describeFlowLogs(DescribeFlowLogsRequest request) {
request = beforeClientExecution(request);
return executeDescribeFlowLogs(request);
}
@SdkInternalApi
final DescribeFlowLogsResult executeDescribeFlowLogs(DescribeFlowLogsRequest describeFlowLogsRequest) {
ExecutionContext executionContext = createExecutionContext(describeFlowLogsRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DescribeFlowLogsRequest> request = null;
Response<DescribeFlowLogsResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DescribeFlowLogsRequestMarshaller().marshall(super.beforeMarshalling(describeFlowLogsRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DescribeFlowLogsResult> responseHandler = new StaxResponseHandler<DescribeFlowLogsResult>(
new DescribeFlowLogsResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
@Override
public DescribeFlowLogsResult describeFlowLogs() {
return describeFlowLogs(new DescribeFlowLogsRequest());
}
/**
* <p>
* Describes the Dedicated Host Reservations that are available to purchase.
* </p>
* <p>
* The results describe all the Dedicated Host Reservation offerings, including offerings that may not match the
* instance family and region of your Dedicated Hosts. When purchasing an offering, ensure that the the instance
* family and region of the offering matches that of the Dedicated Host/s it will be associated with. For an
* overview of supported instance types, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-hosts-overview.html">Dedicated Hosts
* Overview</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.
* </p>
*
* @param describeHostReservationOfferingsRequest
* @return Result of the DescribeHostReservationOfferings operation returned by the service.
* @sample AmazonEC2.DescribeHostReservationOfferings
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeHostReservationOfferings"
* target="_top">AWS API Documentation</a>
*/
@Override
public DescribeHostReservationOfferingsResult describeHostReservationOfferings(DescribeHostReservationOfferingsRequest request) {
request = beforeClientExecution(request);
return executeDescribeHostReservationOfferings(request);
}
@SdkInternalApi
final DescribeHostReservationOfferingsResult executeDescribeHostReservationOfferings(
DescribeHostReservationOfferingsRequest describeHostReservationOfferingsRequest) {
ExecutionContext executionContext = createExecutionContext(describeHostReservationOfferingsRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DescribeHostReservationOfferingsRequest> request = null;
Response<DescribeHostReservationOfferingsResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DescribeHostReservationOfferingsRequestMarshaller().marshall(super.beforeMarshalling(describeHostReservationOfferingsRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DescribeHostReservationOfferingsResult> responseHandler = new StaxResponseHandler<DescribeHostReservationOfferingsResult>(
new DescribeHostReservationOfferingsResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Describes Dedicated Host Reservations which are associated with Dedicated Hosts in your account.
* </p>
*
* @param describeHostReservationsRequest
* @return Result of the DescribeHostReservations operation returned by the service.
* @sample AmazonEC2.DescribeHostReservations
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeHostReservations" target="_top">AWS
* API Documentation</a>
*/
@Override
public DescribeHostReservationsResult describeHostReservations(DescribeHostReservationsRequest request) {
request = beforeClientExecution(request);
return executeDescribeHostReservations(request);
}
@SdkInternalApi
final DescribeHostReservationsResult executeDescribeHostReservations(DescribeHostReservationsRequest describeHostReservationsRequest) {
ExecutionContext executionContext = createExecutionContext(describeHostReservationsRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DescribeHostReservationsRequest> request = null;
Response<DescribeHostReservationsResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DescribeHostReservationsRequestMarshaller().marshall(super.beforeMarshalling(describeHostReservationsRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DescribeHostReservationsResult> responseHandler = new StaxResponseHandler<DescribeHostReservationsResult>(
new DescribeHostReservationsResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Describes one or more of your Dedicated Hosts.
* </p>
* <p>
* The results describe only the Dedicated Hosts in the region you're currently using. All listed instances consume
* capacity on your Dedicated Host. Dedicated Hosts that have recently been released will be listed with the state
* <code>released</code>.
* </p>
*
* @param describeHostsRequest
* Contains the parameters for DescribeHosts.
* @return Result of the DescribeHosts operation returned by the service.
* @sample AmazonEC2.DescribeHosts
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeHosts" target="_top">AWS API
* Documentation</a>
*/
@Override
public DescribeHostsResult describeHosts(DescribeHostsRequest request) {
request = beforeClientExecution(request);
return executeDescribeHosts(request);
}
@SdkInternalApi
final DescribeHostsResult executeDescribeHosts(DescribeHostsRequest describeHostsRequest) {
ExecutionContext executionContext = createExecutionContext(describeHostsRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DescribeHostsRequest> request = null;
Response<DescribeHostsResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DescribeHostsRequestMarshaller().marshall(super.beforeMarshalling(describeHostsRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DescribeHostsResult> responseHandler = new StaxResponseHandler<DescribeHostsResult>(new DescribeHostsResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
@Override
public DescribeHostsResult describeHosts() {
return describeHosts(new DescribeHostsRequest());
}
/**
* <p>
* Describes your IAM instance profile associations.
* </p>
*
* @param describeIamInstanceProfileAssociationsRequest
* @return Result of the DescribeIamInstanceProfileAssociations operation returned by the service.
* @sample AmazonEC2.DescribeIamInstanceProfileAssociations
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeIamInstanceProfileAssociations"
* target="_top">AWS API Documentation</a>
*/
@Override
public DescribeIamInstanceProfileAssociationsResult describeIamInstanceProfileAssociations(DescribeIamInstanceProfileAssociationsRequest request) {
request = beforeClientExecution(request);
return executeDescribeIamInstanceProfileAssociations(request);
}
@SdkInternalApi
final DescribeIamInstanceProfileAssociationsResult executeDescribeIamInstanceProfileAssociations(
DescribeIamInstanceProfileAssociationsRequest describeIamInstanceProfileAssociationsRequest) {
ExecutionContext executionContext = createExecutionContext(describeIamInstanceProfileAssociationsRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DescribeIamInstanceProfileAssociationsRequest> request = null;
Response<DescribeIamInstanceProfileAssociationsResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DescribeIamInstanceProfileAssociationsRequestMarshaller().marshall(super
.beforeMarshalling(describeIamInstanceProfileAssociationsRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DescribeIamInstanceProfileAssociationsResult> responseHandler = new StaxResponseHandler<DescribeIamInstanceProfileAssociationsResult>(
new DescribeIamInstanceProfileAssociationsResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Describes the ID format settings for your resources on a per-region basis, for example, to view which resource
* types are enabled for longer IDs. This request only returns information about resource types whose ID formats can
* be modified; it does not return information about other resource types.
* </p>
* <p>
* The following resource types support longer IDs: <code>instance</code> | <code>reservation</code> |
* <code>snapshot</code> | <code>volume</code>.
* </p>
* <p>
* These settings apply to the IAM user who makes the request; they do not apply to the entire AWS account. By
* default, an IAM user defaults to the same settings as the root user, unless they explicitly override the settings
* by running the <a>ModifyIdFormat</a> command. Resources created with longer IDs are visible to all IAM users,
* regardless of these settings and provided that they have permission to use the relevant <code>Describe</code>
* command for the resource type.
* </p>
*
* @param describeIdFormatRequest
* Contains the parameters for DescribeIdFormat.
* @return Result of the DescribeIdFormat operation returned by the service.
* @sample AmazonEC2.DescribeIdFormat
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeIdFormat" target="_top">AWS API
* Documentation</a>
*/
@Override
public DescribeIdFormatResult describeIdFormat(DescribeIdFormatRequest request) {
request = beforeClientExecution(request);
return executeDescribeIdFormat(request);
}
@SdkInternalApi
final DescribeIdFormatResult executeDescribeIdFormat(DescribeIdFormatRequest describeIdFormatRequest) {
ExecutionContext executionContext = createExecutionContext(describeIdFormatRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DescribeIdFormatRequest> request = null;
Response<DescribeIdFormatResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DescribeIdFormatRequestMarshaller().marshall(super.beforeMarshalling(describeIdFormatRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DescribeIdFormatResult> responseHandler = new StaxResponseHandler<DescribeIdFormatResult>(
new DescribeIdFormatResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
@Override
public DescribeIdFormatResult describeIdFormat() {
return describeIdFormat(new DescribeIdFormatRequest());
}
/**
* <p>
* Describes the ID format settings for resources for the specified IAM user, IAM role, or root user. For example,
* you can view the resource types that are enabled for longer IDs. This request only returns information about
* resource types whose ID formats can be modified; it does not return information about other resource types. For
* more information, see <a href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/resource-ids.html">Resource
* IDs</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.
* </p>
* <p>
* The following resource types support longer IDs: <code>instance</code> | <code>reservation</code> |
* <code>snapshot</code> | <code>volume</code>.
* </p>
* <p>
* These settings apply to the principal specified in the request. They do not apply to the principal that makes the
* request.
* </p>
*
* @param describeIdentityIdFormatRequest
* Contains the parameters for DescribeIdentityIdFormat.
* @return Result of the DescribeIdentityIdFormat operation returned by the service.
* @sample AmazonEC2.DescribeIdentityIdFormat
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeIdentityIdFormat" target="_top">AWS
* API Documentation</a>
*/
@Override
public DescribeIdentityIdFormatResult describeIdentityIdFormat(DescribeIdentityIdFormatRequest request) {
request = beforeClientExecution(request);
return executeDescribeIdentityIdFormat(request);
}
@SdkInternalApi
final DescribeIdentityIdFormatResult executeDescribeIdentityIdFormat(DescribeIdentityIdFormatRequest describeIdentityIdFormatRequest) {
ExecutionContext executionContext = createExecutionContext(describeIdentityIdFormatRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DescribeIdentityIdFormatRequest> request = null;
Response<DescribeIdentityIdFormatResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DescribeIdentityIdFormatRequestMarshaller().marshall(super.beforeMarshalling(describeIdentityIdFormatRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DescribeIdentityIdFormatResult> responseHandler = new StaxResponseHandler<DescribeIdentityIdFormatResult>(
new DescribeIdentityIdFormatResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Describes the specified attribute of the specified AMI. You can specify only one attribute at a time.
* </p>
*
* @param describeImageAttributeRequest
* Contains the parameters for DescribeImageAttribute.
* @return Result of the DescribeImageAttribute operation returned by the service.
* @sample AmazonEC2.DescribeImageAttribute
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeImageAttribute" target="_top">AWS API
* Documentation</a>
*/
@Override
public DescribeImageAttributeResult describeImageAttribute(DescribeImageAttributeRequest request) {
request = beforeClientExecution(request);
return executeDescribeImageAttribute(request);
}
@SdkInternalApi
final DescribeImageAttributeResult executeDescribeImageAttribute(DescribeImageAttributeRequest describeImageAttributeRequest) {
ExecutionContext executionContext = createExecutionContext(describeImageAttributeRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DescribeImageAttributeRequest> request = null;
Response<DescribeImageAttributeResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DescribeImageAttributeRequestMarshaller().marshall(super.beforeMarshalling(describeImageAttributeRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DescribeImageAttributeResult> responseHandler = new StaxResponseHandler<DescribeImageAttributeResult>(
new DescribeImageAttributeResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Describes one or more of the images (AMIs, AKIs, and ARIs) available to you. Images available to you include
* public images, private images that you own, and private images owned by other AWS accounts but for which you have
* explicit launch permissions.
* </p>
* <note>
* <p>
* Deregistered images are included in the returned results for an unspecified interval after deregistration.
* </p>
* </note>
*
* @param describeImagesRequest
* Contains the parameters for DescribeImages.
* @return Result of the DescribeImages operation returned by the service.
* @sample AmazonEC2.DescribeImages
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeImages" target="_top">AWS API
* Documentation</a>
*/
@Override
public DescribeImagesResult describeImages(DescribeImagesRequest request) {
request = beforeClientExecution(request);
return executeDescribeImages(request);
}
@SdkInternalApi
final DescribeImagesResult executeDescribeImages(DescribeImagesRequest describeImagesRequest) {
ExecutionContext executionContext = createExecutionContext(describeImagesRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DescribeImagesRequest> request = null;
Response<DescribeImagesResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DescribeImagesRequestMarshaller().marshall(super.beforeMarshalling(describeImagesRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DescribeImagesResult> responseHandler = new StaxResponseHandler<DescribeImagesResult>(
new DescribeImagesResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
@Override
public DescribeImagesResult describeImages() {
return describeImages(new DescribeImagesRequest());
}
/**
* <p>
* Displays details about an import virtual machine or import snapshot tasks that are already created.
* </p>
*
* @param describeImportImageTasksRequest
* Contains the parameters for DescribeImportImageTasks.
* @return Result of the DescribeImportImageTasks operation returned by the service.
* @sample AmazonEC2.DescribeImportImageTasks
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeImportImageTasks" target="_top">AWS
* API Documentation</a>
*/
@Override
public DescribeImportImageTasksResult describeImportImageTasks(DescribeImportImageTasksRequest request) {
request = beforeClientExecution(request);
return executeDescribeImportImageTasks(request);
}
@SdkInternalApi
final DescribeImportImageTasksResult executeDescribeImportImageTasks(DescribeImportImageTasksRequest describeImportImageTasksRequest) {
ExecutionContext executionContext = createExecutionContext(describeImportImageTasksRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DescribeImportImageTasksRequest> request = null;
Response<DescribeImportImageTasksResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DescribeImportImageTasksRequestMarshaller().marshall(super.beforeMarshalling(describeImportImageTasksRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DescribeImportImageTasksResult> responseHandler = new StaxResponseHandler<DescribeImportImageTasksResult>(
new DescribeImportImageTasksResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
@Override
public DescribeImportImageTasksResult describeImportImageTasks() {
return describeImportImageTasks(new DescribeImportImageTasksRequest());
}
/**
* <p>
* Describes your import snapshot tasks.
* </p>
*
* @param describeImportSnapshotTasksRequest
* Contains the parameters for DescribeImportSnapshotTasks.
* @return Result of the DescribeImportSnapshotTasks operation returned by the service.
* @sample AmazonEC2.DescribeImportSnapshotTasks
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeImportSnapshotTasks"
* target="_top">AWS API Documentation</a>
*/
@Override
public DescribeImportSnapshotTasksResult describeImportSnapshotTasks(DescribeImportSnapshotTasksRequest request) {
request = beforeClientExecution(request);
return executeDescribeImportSnapshotTasks(request);
}
@SdkInternalApi
final DescribeImportSnapshotTasksResult executeDescribeImportSnapshotTasks(DescribeImportSnapshotTasksRequest describeImportSnapshotTasksRequest) {
ExecutionContext executionContext = createExecutionContext(describeImportSnapshotTasksRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DescribeImportSnapshotTasksRequest> request = null;
Response<DescribeImportSnapshotTasksResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DescribeImportSnapshotTasksRequestMarshaller().marshall(super.beforeMarshalling(describeImportSnapshotTasksRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DescribeImportSnapshotTasksResult> responseHandler = new StaxResponseHandler<DescribeImportSnapshotTasksResult>(
new DescribeImportSnapshotTasksResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
@Override
public DescribeImportSnapshotTasksResult describeImportSnapshotTasks() {
return describeImportSnapshotTasks(new DescribeImportSnapshotTasksRequest());
}
/**
* <p>
* Describes the specified attribute of the specified instance. You can specify only one attribute at a time. Valid
* attribute values are: <code>instanceType</code> | <code>kernel</code> | <code>ramdisk</code> |
* <code>userData</code> | <code>disableApiTermination</code> | <code>instanceInitiatedShutdownBehavior</code> |
* <code>rootDeviceName</code> | <code>blockDeviceMapping</code> | <code>productCodes</code> |
* <code>sourceDestCheck</code> | <code>groupSet</code> | <code>ebsOptimized</code> | <code>sriovNetSupport</code>
* </p>
*
* @param describeInstanceAttributeRequest
* Contains the parameters for DescribeInstanceAttribute.
* @return Result of the DescribeInstanceAttribute operation returned by the service.
* @sample AmazonEC2.DescribeInstanceAttribute
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeInstanceAttribute" target="_top">AWS
* API Documentation</a>
*/
@Override
public DescribeInstanceAttributeResult describeInstanceAttribute(DescribeInstanceAttributeRequest request) {
request = beforeClientExecution(request);
return executeDescribeInstanceAttribute(request);
}
@SdkInternalApi
final DescribeInstanceAttributeResult executeDescribeInstanceAttribute(DescribeInstanceAttributeRequest describeInstanceAttributeRequest) {
ExecutionContext executionContext = createExecutionContext(describeInstanceAttributeRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DescribeInstanceAttributeRequest> request = null;
Response<DescribeInstanceAttributeResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DescribeInstanceAttributeRequestMarshaller().marshall(super.beforeMarshalling(describeInstanceAttributeRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DescribeInstanceAttributeResult> responseHandler = new StaxResponseHandler<DescribeInstanceAttributeResult>(
new DescribeInstanceAttributeResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Describes the status of one or more instances. By default, only running instances are described, unless specified
* otherwise.
* </p>
* <p>
* Instance status includes the following components:
* </p>
* <ul>
* <li>
* <p>
* <b>Status checks</b> - Amazon EC2 performs status checks on running EC2 instances to identify hardware and
* software issues. For more information, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/monitoring-system-instance-status-check.html">Status
* Checks for Your Instances</a> and <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/TroubleshootingInstances.html">Troubleshooting Instances
* with Failed Status Checks</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.
* </p>
* </li>
* <li>
* <p>
* <b>Scheduled events</b> - Amazon EC2 can schedule events (such as reboot, stop, or terminate) for your instances
* related to hardware issues, software updates, or system maintenance. For more information, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/monitoring-instances-status-check_sched.html">Scheduled
* Events for Your Instances</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.
* </p>
* </li>
* <li>
* <p>
* <b>Instance state</b> - You can manage your instances from the moment you launch them through their termination.
* For more information, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-lifecycle.html">Instance Lifecycle</a> in
* the <i>Amazon Elastic Compute Cloud User Guide</i>.
* </p>
* </li>
* </ul>
*
* @param describeInstanceStatusRequest
* Contains the parameters for DescribeInstanceStatus.
* @return Result of the DescribeInstanceStatus operation returned by the service.
* @sample AmazonEC2.DescribeInstanceStatus
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeInstanceStatus" target="_top">AWS API
* Documentation</a>
*/
@Override
public DescribeInstanceStatusResult describeInstanceStatus(DescribeInstanceStatusRequest request) {
request = beforeClientExecution(request);
return executeDescribeInstanceStatus(request);
}
@SdkInternalApi
final DescribeInstanceStatusResult executeDescribeInstanceStatus(DescribeInstanceStatusRequest describeInstanceStatusRequest) {
ExecutionContext executionContext = createExecutionContext(describeInstanceStatusRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DescribeInstanceStatusRequest> request = null;
Response<DescribeInstanceStatusResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DescribeInstanceStatusRequestMarshaller().marshall(super.beforeMarshalling(describeInstanceStatusRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DescribeInstanceStatusResult> responseHandler = new StaxResponseHandler<DescribeInstanceStatusResult>(
new DescribeInstanceStatusResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
@Override
public DescribeInstanceStatusResult describeInstanceStatus() {
return describeInstanceStatus(new DescribeInstanceStatusRequest());
}
/**
* <p>
* Describes one or more of your instances.
* </p>
* <p>
* If you specify one or more instance IDs, Amazon EC2 returns information for those instances. If you do not
* specify instance IDs, Amazon EC2 returns information for all relevant instances. If you specify an instance ID
* that is not valid, an error is returned. If you specify an instance that you do not own, it is not included in
* the returned results.
* </p>
* <p>
* Recently terminated instances might appear in the returned results. This interval is usually less than one hour.
* </p>
* <p>
* If you describe instances in the rare case where an Availability Zone is experiencing a service disruption and
* you specify instance IDs that are in the affected zone, or do not specify any instance IDs at all, the call
* fails. If you describe instances and specify only instance IDs that are in an unaffected zone, the call works
* normally.
* </p>
*
* @param describeInstancesRequest
* Contains the parameters for DescribeInstances.
* @return Result of the DescribeInstances operation returned by the service.
* @sample AmazonEC2.DescribeInstances
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeInstances" target="_top">AWS API
* Documentation</a>
*/
@Override
public DescribeInstancesResult describeInstances(DescribeInstancesRequest request) {
request = beforeClientExecution(request);
return executeDescribeInstances(request);
}
@SdkInternalApi
final DescribeInstancesResult executeDescribeInstances(DescribeInstancesRequest describeInstancesRequest) {
ExecutionContext executionContext = createExecutionContext(describeInstancesRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DescribeInstancesRequest> request = null;
Response<DescribeInstancesResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DescribeInstancesRequestMarshaller().marshall(super.beforeMarshalling(describeInstancesRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DescribeInstancesResult> responseHandler = new StaxResponseHandler<DescribeInstancesResult>(
new DescribeInstancesResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
@Override
public DescribeInstancesResult describeInstances() {
return describeInstances(new DescribeInstancesRequest());
}
/**
* <p>
* Describes one or more of your Internet gateways.
* </p>
*
* @param describeInternetGatewaysRequest
* Contains the parameters for DescribeInternetGateways.
* @return Result of the DescribeInternetGateways operation returned by the service.
* @sample AmazonEC2.DescribeInternetGateways
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeInternetGateways" target="_top">AWS
* API Documentation</a>
*/
@Override
public DescribeInternetGatewaysResult describeInternetGateways(DescribeInternetGatewaysRequest request) {
request = beforeClientExecution(request);
return executeDescribeInternetGateways(request);
}
@SdkInternalApi
final DescribeInternetGatewaysResult executeDescribeInternetGateways(DescribeInternetGatewaysRequest describeInternetGatewaysRequest) {
ExecutionContext executionContext = createExecutionContext(describeInternetGatewaysRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DescribeInternetGatewaysRequest> request = null;
Response<DescribeInternetGatewaysResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DescribeInternetGatewaysRequestMarshaller().marshall(super.beforeMarshalling(describeInternetGatewaysRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DescribeInternetGatewaysResult> responseHandler = new StaxResponseHandler<DescribeInternetGatewaysResult>(
new DescribeInternetGatewaysResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
@Override
public DescribeInternetGatewaysResult describeInternetGateways() {
return describeInternetGateways(new DescribeInternetGatewaysRequest());
}
/**
* <p>
* Describes one or more of your key pairs.
* </p>
* <p>
* For more information about key pairs, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html">Key Pairs</a> in the <i>Amazon
* Elastic Compute Cloud User Guide</i>.
* </p>
*
* @param describeKeyPairsRequest
* Contains the parameters for DescribeKeyPairs.
* @return Result of the DescribeKeyPairs operation returned by the service.
* @sample AmazonEC2.DescribeKeyPairs
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeKeyPairs" target="_top">AWS API
* Documentation</a>
*/
@Override
public DescribeKeyPairsResult describeKeyPairs(DescribeKeyPairsRequest request) {
request = beforeClientExecution(request);
return executeDescribeKeyPairs(request);
}
@SdkInternalApi
final DescribeKeyPairsResult executeDescribeKeyPairs(DescribeKeyPairsRequest describeKeyPairsRequest) {
ExecutionContext executionContext = createExecutionContext(describeKeyPairsRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DescribeKeyPairsRequest> request = null;
Response<DescribeKeyPairsResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DescribeKeyPairsRequestMarshaller().marshall(super.beforeMarshalling(describeKeyPairsRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DescribeKeyPairsResult> responseHandler = new StaxResponseHandler<DescribeKeyPairsResult>(
new DescribeKeyPairsResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
@Override
public DescribeKeyPairsResult describeKeyPairs() {
return describeKeyPairs(new DescribeKeyPairsRequest());
}
/**
* <p>
* Describes your Elastic IP addresses that are being moved to the EC2-VPC platform, or that are being restored to
* the EC2-Classic platform. This request does not return information about any other Elastic IP addresses in your
* account.
* </p>
*
* @param describeMovingAddressesRequest
* Contains the parameters for DescribeMovingAddresses.
* @return Result of the DescribeMovingAddresses operation returned by the service.
* @sample AmazonEC2.DescribeMovingAddresses
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeMovingAddresses" target="_top">AWS
* API Documentation</a>
*/
@Override
public DescribeMovingAddressesResult describeMovingAddresses(DescribeMovingAddressesRequest request) {
request = beforeClientExecution(request);
return executeDescribeMovingAddresses(request);
}
@SdkInternalApi
final DescribeMovingAddressesResult executeDescribeMovingAddresses(DescribeMovingAddressesRequest describeMovingAddressesRequest) {
ExecutionContext executionContext = createExecutionContext(describeMovingAddressesRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DescribeMovingAddressesRequest> request = null;
Response<DescribeMovingAddressesResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DescribeMovingAddressesRequestMarshaller().marshall(super.beforeMarshalling(describeMovingAddressesRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DescribeMovingAddressesResult> responseHandler = new StaxResponseHandler<DescribeMovingAddressesResult>(
new DescribeMovingAddressesResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
@Override
public DescribeMovingAddressesResult describeMovingAddresses() {
return describeMovingAddresses(new DescribeMovingAddressesRequest());
}
/**
* <p>
* Describes one or more of the your NAT gateways.
* </p>
*
* @param describeNatGatewaysRequest
* Contains the parameters for DescribeNatGateways.
* @return Result of the DescribeNatGateways operation returned by the service.
* @sample AmazonEC2.DescribeNatGateways
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeNatGateways" target="_top">AWS API
* Documentation</a>
*/
@Override
public DescribeNatGatewaysResult describeNatGateways(DescribeNatGatewaysRequest request) {
request = beforeClientExecution(request);
return executeDescribeNatGateways(request);
}
@SdkInternalApi
final DescribeNatGatewaysResult executeDescribeNatGateways(DescribeNatGatewaysRequest describeNatGatewaysRequest) {
ExecutionContext executionContext = createExecutionContext(describeNatGatewaysRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DescribeNatGatewaysRequest> request = null;
Response<DescribeNatGatewaysResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DescribeNatGatewaysRequestMarshaller().marshall(super.beforeMarshalling(describeNatGatewaysRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DescribeNatGatewaysResult> responseHandler = new StaxResponseHandler<DescribeNatGatewaysResult>(
new DescribeNatGatewaysResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Describes one or more of your network ACLs.
* </p>
* <p>
* For more information about network ACLs, see <a
* href="http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_ACLs.html">Network ACLs</a> in the <i>Amazon
* Virtual Private Cloud User Guide</i>.
* </p>
*
* @param describeNetworkAclsRequest
* Contains the parameters for DescribeNetworkAcls.
* @return Result of the DescribeNetworkAcls operation returned by the service.
* @sample AmazonEC2.DescribeNetworkAcls
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeNetworkAcls" target="_top">AWS API
* Documentation</a>
*/
@Override
public DescribeNetworkAclsResult describeNetworkAcls(DescribeNetworkAclsRequest request) {
request = beforeClientExecution(request);
return executeDescribeNetworkAcls(request);
}
@SdkInternalApi
final DescribeNetworkAclsResult executeDescribeNetworkAcls(DescribeNetworkAclsRequest describeNetworkAclsRequest) {
ExecutionContext executionContext = createExecutionContext(describeNetworkAclsRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DescribeNetworkAclsRequest> request = null;
Response<DescribeNetworkAclsResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DescribeNetworkAclsRequestMarshaller().marshall(super.beforeMarshalling(describeNetworkAclsRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DescribeNetworkAclsResult> responseHandler = new StaxResponseHandler<DescribeNetworkAclsResult>(
new DescribeNetworkAclsResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
@Override
public DescribeNetworkAclsResult describeNetworkAcls() {
return describeNetworkAcls(new DescribeNetworkAclsRequest());
}
/**
* <p>
* Describes a network interface attribute. You can specify only one attribute at a time.
* </p>
*
* @param describeNetworkInterfaceAttributeRequest
* Contains the parameters for DescribeNetworkInterfaceAttribute.
* @return Result of the DescribeNetworkInterfaceAttribute operation returned by the service.
* @sample AmazonEC2.DescribeNetworkInterfaceAttribute
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeNetworkInterfaceAttribute"
* target="_top">AWS API Documentation</a>
*/
@Override
public DescribeNetworkInterfaceAttributeResult describeNetworkInterfaceAttribute(DescribeNetworkInterfaceAttributeRequest request) {
request = beforeClientExecution(request);
return executeDescribeNetworkInterfaceAttribute(request);
}
@SdkInternalApi
final DescribeNetworkInterfaceAttributeResult executeDescribeNetworkInterfaceAttribute(
DescribeNetworkInterfaceAttributeRequest describeNetworkInterfaceAttributeRequest) {
ExecutionContext executionContext = createExecutionContext(describeNetworkInterfaceAttributeRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DescribeNetworkInterfaceAttributeRequest> request = null;
Response<DescribeNetworkInterfaceAttributeResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DescribeNetworkInterfaceAttributeRequestMarshaller().marshall(super.beforeMarshalling(describeNetworkInterfaceAttributeRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DescribeNetworkInterfaceAttributeResult> responseHandler = new StaxResponseHandler<DescribeNetworkInterfaceAttributeResult>(
new DescribeNetworkInterfaceAttributeResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Describes one or more of your network interfaces.
* </p>
*
* @param describeNetworkInterfacesRequest
* Contains the parameters for DescribeNetworkInterfaces.
* @return Result of the DescribeNetworkInterfaces operation returned by the service.
* @sample AmazonEC2.DescribeNetworkInterfaces
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeNetworkInterfaces" target="_top">AWS
* API Documentation</a>
*/
@Override
public DescribeNetworkInterfacesResult describeNetworkInterfaces(DescribeNetworkInterfacesRequest request) {
request = beforeClientExecution(request);
return executeDescribeNetworkInterfaces(request);
}
@SdkInternalApi
final DescribeNetworkInterfacesResult executeDescribeNetworkInterfaces(DescribeNetworkInterfacesRequest describeNetworkInterfacesRequest) {
ExecutionContext executionContext = createExecutionContext(describeNetworkInterfacesRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DescribeNetworkInterfacesRequest> request = null;
Response<DescribeNetworkInterfacesResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DescribeNetworkInterfacesRequestMarshaller().marshall(super.beforeMarshalling(describeNetworkInterfacesRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DescribeNetworkInterfacesResult> responseHandler = new StaxResponseHandler<DescribeNetworkInterfacesResult>(
new DescribeNetworkInterfacesResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
@Override
public DescribeNetworkInterfacesResult describeNetworkInterfaces() {
return describeNetworkInterfaces(new DescribeNetworkInterfacesRequest());
}
/**
* <p>
* Describes one or more of your placement groups. For more information about placement groups and cluster
* instances, see <a href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using_cluster_computing.html">Cluster
* Instances</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.
* </p>
*
* @param describePlacementGroupsRequest
* Contains the parameters for DescribePlacementGroups.
* @return Result of the DescribePlacementGroups operation returned by the service.
* @sample AmazonEC2.DescribePlacementGroups
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribePlacementGroups" target="_top">AWS
* API Documentation</a>
*/
@Override
public DescribePlacementGroupsResult describePlacementGroups(DescribePlacementGroupsRequest request) {
request = beforeClientExecution(request);
return executeDescribePlacementGroups(request);
}
@SdkInternalApi
final DescribePlacementGroupsResult executeDescribePlacementGroups(DescribePlacementGroupsRequest describePlacementGroupsRequest) {
ExecutionContext executionContext = createExecutionContext(describePlacementGroupsRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DescribePlacementGroupsRequest> request = null;
Response<DescribePlacementGroupsResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DescribePlacementGroupsRequestMarshaller().marshall(super.beforeMarshalling(describePlacementGroupsRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DescribePlacementGroupsResult> responseHandler = new StaxResponseHandler<DescribePlacementGroupsResult>(
new DescribePlacementGroupsResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
@Override
public DescribePlacementGroupsResult describePlacementGroups() {
return describePlacementGroups(new DescribePlacementGroupsRequest());
}
/**
* <p>
* Describes available AWS services in a prefix list format, which includes the prefix list name and prefix list ID
* of the service and the IP address range for the service. A prefix list ID is required for creating an outbound
* security group rule that allows traffic from a VPC to access an AWS service through a VPC endpoint.
* </p>
*
* @param describePrefixListsRequest
* Contains the parameters for DescribePrefixLists.
* @return Result of the DescribePrefixLists operation returned by the service.
* @sample AmazonEC2.DescribePrefixLists
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribePrefixLists" target="_top">AWS API
* Documentation</a>
*/
@Override
public DescribePrefixListsResult describePrefixLists(DescribePrefixListsRequest request) {
request = beforeClientExecution(request);
return executeDescribePrefixLists(request);
}
@SdkInternalApi
final DescribePrefixListsResult executeDescribePrefixLists(DescribePrefixListsRequest describePrefixListsRequest) {
ExecutionContext executionContext = createExecutionContext(describePrefixListsRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DescribePrefixListsRequest> request = null;
Response<DescribePrefixListsResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DescribePrefixListsRequestMarshaller().marshall(super.beforeMarshalling(describePrefixListsRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DescribePrefixListsResult> responseHandler = new StaxResponseHandler<DescribePrefixListsResult>(
new DescribePrefixListsResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
@Override
public DescribePrefixListsResult describePrefixLists() {
return describePrefixLists(new DescribePrefixListsRequest());
}
/**
* <p>
* Describes one or more regions that are currently available to you.
* </p>
* <p>
* For a list of the regions supported by Amazon EC2, see <a
* href="http://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region">Regions and Endpoints</a>.
* </p>
*
* @param describeRegionsRequest
* Contains the parameters for DescribeRegions.
* @return Result of the DescribeRegions operation returned by the service.
* @sample AmazonEC2.DescribeRegions
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeRegions" target="_top">AWS API
* Documentation</a>
*/
@Override
public DescribeRegionsResult describeRegions(DescribeRegionsRequest request) {
request = beforeClientExecution(request);
return executeDescribeRegions(request);
}
@SdkInternalApi
final DescribeRegionsResult executeDescribeRegions(DescribeRegionsRequest describeRegionsRequest) {
ExecutionContext executionContext = createExecutionContext(describeRegionsRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DescribeRegionsRequest> request = null;
Response<DescribeRegionsResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DescribeRegionsRequestMarshaller().marshall(super.beforeMarshalling(describeRegionsRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DescribeRegionsResult> responseHandler = new StaxResponseHandler<DescribeRegionsResult>(
new DescribeRegionsResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
@Override
public DescribeRegionsResult describeRegions() {
return describeRegions(new DescribeRegionsRequest());
}
/**
* <p>
* Describes one or more of the Reserved Instances that you purchased.
* </p>
* <p>
* For more information about Reserved Instances, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts-on-demand-reserved-instances.html">Reserved
* Instances</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.
* </p>
*
* @param describeReservedInstancesRequest
* Contains the parameters for DescribeReservedInstances.
* @return Result of the DescribeReservedInstances operation returned by the service.
* @sample AmazonEC2.DescribeReservedInstances
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeReservedInstances" target="_top">AWS
* API Documentation</a>
*/
@Override
public DescribeReservedInstancesResult describeReservedInstances(DescribeReservedInstancesRequest request) {
request = beforeClientExecution(request);
return executeDescribeReservedInstances(request);
}
@SdkInternalApi
final DescribeReservedInstancesResult executeDescribeReservedInstances(DescribeReservedInstancesRequest describeReservedInstancesRequest) {
ExecutionContext executionContext = createExecutionContext(describeReservedInstancesRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DescribeReservedInstancesRequest> request = null;
Response<DescribeReservedInstancesResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DescribeReservedInstancesRequestMarshaller().marshall(super.beforeMarshalling(describeReservedInstancesRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DescribeReservedInstancesResult> responseHandler = new StaxResponseHandler<DescribeReservedInstancesResult>(
new DescribeReservedInstancesResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
@Override
public DescribeReservedInstancesResult describeReservedInstances() {
return describeReservedInstances(new DescribeReservedInstancesRequest());
}
/**
* <p>
* Describes your account's Reserved Instance listings in the Reserved Instance Marketplace.
* </p>
* <p>
* The Reserved Instance Marketplace matches sellers who want to resell Reserved Instance capacity that they no
* longer need with buyers who want to purchase additional capacity. Reserved Instances bought and sold through the
* Reserved Instance Marketplace work like any other Reserved Instances.
* </p>
* <p>
* As a seller, you choose to list some or all of your Reserved Instances, and you specify the upfront price to
* receive for them. Your Reserved Instances are then listed in the Reserved Instance Marketplace and are available
* for purchase.
* </p>
* <p>
* As a buyer, you specify the configuration of the Reserved Instance to purchase, and the Marketplace matches what
* you're searching for with what's available. The Marketplace first sells the lowest priced Reserved Instances to
* you, and continues to sell available Reserved Instance listings to you until your demand is met. You are charged
* based on the total price of all of the listings that you purchase.
* </p>
* <p>
* For more information, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-market-general.html">Reserved Instance
* Marketplace</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.
* </p>
*
* @param describeReservedInstancesListingsRequest
* Contains the parameters for DescribeReservedInstancesListings.
* @return Result of the DescribeReservedInstancesListings operation returned by the service.
* @sample AmazonEC2.DescribeReservedInstancesListings
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeReservedInstancesListings"
* target="_top">AWS API Documentation</a>
*/
@Override
public DescribeReservedInstancesListingsResult describeReservedInstancesListings(DescribeReservedInstancesListingsRequest request) {
request = beforeClientExecution(request);
return executeDescribeReservedInstancesListings(request);
}
@SdkInternalApi
final DescribeReservedInstancesListingsResult executeDescribeReservedInstancesListings(
DescribeReservedInstancesListingsRequest describeReservedInstancesListingsRequest) {
ExecutionContext executionContext = createExecutionContext(describeReservedInstancesListingsRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DescribeReservedInstancesListingsRequest> request = null;
Response<DescribeReservedInstancesListingsResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DescribeReservedInstancesListingsRequestMarshaller().marshall(super.beforeMarshalling(describeReservedInstancesListingsRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DescribeReservedInstancesListingsResult> responseHandler = new StaxResponseHandler<DescribeReservedInstancesListingsResult>(
new DescribeReservedInstancesListingsResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
@Override
public DescribeReservedInstancesListingsResult describeReservedInstancesListings() {
return describeReservedInstancesListings(new DescribeReservedInstancesListingsRequest());
}
/**
* <p>
* Describes the modifications made to your Reserved Instances. If no parameter is specified, information about all
* your Reserved Instances modification requests is returned. If a modification ID is specified, only information
* about the specific modification is returned.
* </p>
* <p>
* For more information, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-modifying.html">Modifying Reserved Instances</a> in
* the Amazon Elastic Compute Cloud User Guide.
* </p>
*
* @param describeReservedInstancesModificationsRequest
* Contains the parameters for DescribeReservedInstancesModifications.
* @return Result of the DescribeReservedInstancesModifications operation returned by the service.
* @sample AmazonEC2.DescribeReservedInstancesModifications
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeReservedInstancesModifications"
* target="_top">AWS API Documentation</a>
*/
@Override
public DescribeReservedInstancesModificationsResult describeReservedInstancesModifications(DescribeReservedInstancesModificationsRequest request) {
request = beforeClientExecution(request);
return executeDescribeReservedInstancesModifications(request);
}
@SdkInternalApi
final DescribeReservedInstancesModificationsResult executeDescribeReservedInstancesModifications(
DescribeReservedInstancesModificationsRequest describeReservedInstancesModificationsRequest) {
ExecutionContext executionContext = createExecutionContext(describeReservedInstancesModificationsRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DescribeReservedInstancesModificationsRequest> request = null;
Response<DescribeReservedInstancesModificationsResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DescribeReservedInstancesModificationsRequestMarshaller().marshall(super
.beforeMarshalling(describeReservedInstancesModificationsRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DescribeReservedInstancesModificationsResult> responseHandler = new StaxResponseHandler<DescribeReservedInstancesModificationsResult>(
new DescribeReservedInstancesModificationsResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
@Override
public DescribeReservedInstancesModificationsResult describeReservedInstancesModifications() {
return describeReservedInstancesModifications(new DescribeReservedInstancesModificationsRequest());
}
/**
* <p>
* Describes Reserved Instance offerings that are available for purchase. With Reserved Instances, you purchase the
* right to launch instances for a period of time. During that time period, you do not receive insufficient capacity
* errors, and you pay a lower usage rate than the rate charged for On-Demand instances for the actual time used.
* </p>
* <p>
* If you have listed your own Reserved Instances for sale in the Reserved Instance Marketplace, they will be
* excluded from these results. This is to ensure that you do not purchase your own Reserved Instances.
* </p>
* <p>
* For more information, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-market-general.html">Reserved Instance
* Marketplace</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.
* </p>
*
* @param describeReservedInstancesOfferingsRequest
* Contains the parameters for DescribeReservedInstancesOfferings.
* @return Result of the DescribeReservedInstancesOfferings operation returned by the service.
* @sample AmazonEC2.DescribeReservedInstancesOfferings
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeReservedInstancesOfferings"
* target="_top">AWS API Documentation</a>
*/
@Override
public DescribeReservedInstancesOfferingsResult describeReservedInstancesOfferings(DescribeReservedInstancesOfferingsRequest request) {
request = beforeClientExecution(request);
return executeDescribeReservedInstancesOfferings(request);
}
@SdkInternalApi
final DescribeReservedInstancesOfferingsResult executeDescribeReservedInstancesOfferings(
DescribeReservedInstancesOfferingsRequest describeReservedInstancesOfferingsRequest) {
ExecutionContext executionContext = createExecutionContext(describeReservedInstancesOfferingsRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DescribeReservedInstancesOfferingsRequest> request = null;
Response<DescribeReservedInstancesOfferingsResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DescribeReservedInstancesOfferingsRequestMarshaller()
.marshall(super.beforeMarshalling(describeReservedInstancesOfferingsRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DescribeReservedInstancesOfferingsResult> responseHandler = new StaxResponseHandler<DescribeReservedInstancesOfferingsResult>(
new DescribeReservedInstancesOfferingsResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
@Override
public DescribeReservedInstancesOfferingsResult describeReservedInstancesOfferings() {
return describeReservedInstancesOfferings(new DescribeReservedInstancesOfferingsRequest());
}
/**
* <p>
* Describes one or more of your route tables.
* </p>
* <p>
* Each subnet in your VPC must be associated with a route table. If a subnet is not explicitly associated with any
* route table, it is implicitly associated with the main route table. This command does not return the subnet ID
* for implicit associations.
* </p>
* <p>
* For more information about route tables, see <a
* href="http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Route_Tables.html">Route Tables</a> in the
* <i>Amazon Virtual Private Cloud User Guide</i>.
* </p>
*
* @param describeRouteTablesRequest
* Contains the parameters for DescribeRouteTables.
* @return Result of the DescribeRouteTables operation returned by the service.
* @sample AmazonEC2.DescribeRouteTables
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeRouteTables" target="_top">AWS API
* Documentation</a>
*/
@Override
public DescribeRouteTablesResult describeRouteTables(DescribeRouteTablesRequest request) {
request = beforeClientExecution(request);
return executeDescribeRouteTables(request);
}
@SdkInternalApi
final DescribeRouteTablesResult executeDescribeRouteTables(DescribeRouteTablesRequest describeRouteTablesRequest) {
ExecutionContext executionContext = createExecutionContext(describeRouteTablesRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DescribeRouteTablesRequest> request = null;
Response<DescribeRouteTablesResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DescribeRouteTablesRequestMarshaller().marshall(super.beforeMarshalling(describeRouteTablesRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DescribeRouteTablesResult> responseHandler = new StaxResponseHandler<DescribeRouteTablesResult>(
new DescribeRouteTablesResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
@Override
public DescribeRouteTablesResult describeRouteTables() {
return describeRouteTables(new DescribeRouteTablesRequest());
}
/**
* <p>
* Finds available schedules that meet the specified criteria.
* </p>
* <p>
* You can search for an available schedule no more than 3 months in advance. You must meet the minimum required
* duration of 1,200 hours per year. For example, the minimum daily schedule is 4 hours, the minimum weekly schedule
* is 24 hours, and the minimum monthly schedule is 100 hours.
* </p>
* <p>
* After you find a schedule that meets your needs, call <a>PurchaseScheduledInstances</a> to purchase Scheduled
* Instances with that schedule.
* </p>
*
* @param describeScheduledInstanceAvailabilityRequest
* Contains the parameters for DescribeScheduledInstanceAvailability.
* @return Result of the DescribeScheduledInstanceAvailability operation returned by the service.
* @sample AmazonEC2.DescribeScheduledInstanceAvailability
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeScheduledInstanceAvailability"
* target="_top">AWS API Documentation</a>
*/
@Override
public DescribeScheduledInstanceAvailabilityResult describeScheduledInstanceAvailability(DescribeScheduledInstanceAvailabilityRequest request) {
request = beforeClientExecution(request);
return executeDescribeScheduledInstanceAvailability(request);
}
@SdkInternalApi
final DescribeScheduledInstanceAvailabilityResult executeDescribeScheduledInstanceAvailability(
DescribeScheduledInstanceAvailabilityRequest describeScheduledInstanceAvailabilityRequest) {
ExecutionContext executionContext = createExecutionContext(describeScheduledInstanceAvailabilityRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DescribeScheduledInstanceAvailabilityRequest> request = null;
Response<DescribeScheduledInstanceAvailabilityResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DescribeScheduledInstanceAvailabilityRequestMarshaller().marshall(super
.beforeMarshalling(describeScheduledInstanceAvailabilityRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DescribeScheduledInstanceAvailabilityResult> responseHandler = new StaxResponseHandler<DescribeScheduledInstanceAvailabilityResult>(
new DescribeScheduledInstanceAvailabilityResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Describes one or more of your Scheduled Instances.
* </p>
*
* @param describeScheduledInstancesRequest
* Contains the parameters for DescribeScheduledInstances.
* @return Result of the DescribeScheduledInstances operation returned by the service.
* @sample AmazonEC2.DescribeScheduledInstances
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeScheduledInstances" target="_top">AWS
* API Documentation</a>
*/
@Override
public DescribeScheduledInstancesResult describeScheduledInstances(DescribeScheduledInstancesRequest request) {
request = beforeClientExecution(request);
return executeDescribeScheduledInstances(request);
}
@SdkInternalApi
final DescribeScheduledInstancesResult executeDescribeScheduledInstances(DescribeScheduledInstancesRequest describeScheduledInstancesRequest) {
ExecutionContext executionContext = createExecutionContext(describeScheduledInstancesRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DescribeScheduledInstancesRequest> request = null;
Response<DescribeScheduledInstancesResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DescribeScheduledInstancesRequestMarshaller().marshall(super.beforeMarshalling(describeScheduledInstancesRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DescribeScheduledInstancesResult> responseHandler = new StaxResponseHandler<DescribeScheduledInstancesResult>(
new DescribeScheduledInstancesResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* [EC2-VPC only] Describes the VPCs on the other side of a VPC peering connection that are referencing the security
* groups you've specified in this request.
* </p>
*
* @param describeSecurityGroupReferencesRequest
* @return Result of the DescribeSecurityGroupReferences operation returned by the service.
* @sample AmazonEC2.DescribeSecurityGroupReferences
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeSecurityGroupReferences"
* target="_top">AWS API Documentation</a>
*/
@Override
public DescribeSecurityGroupReferencesResult describeSecurityGroupReferences(DescribeSecurityGroupReferencesRequest request) {
request = beforeClientExecution(request);
return executeDescribeSecurityGroupReferences(request);
}
@SdkInternalApi
final DescribeSecurityGroupReferencesResult executeDescribeSecurityGroupReferences(
DescribeSecurityGroupReferencesRequest describeSecurityGroupReferencesRequest) {
ExecutionContext executionContext = createExecutionContext(describeSecurityGroupReferencesRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DescribeSecurityGroupReferencesRequest> request = null;
Response<DescribeSecurityGroupReferencesResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DescribeSecurityGroupReferencesRequestMarshaller().marshall(super.beforeMarshalling(describeSecurityGroupReferencesRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DescribeSecurityGroupReferencesResult> responseHandler = new StaxResponseHandler<DescribeSecurityGroupReferencesResult>(
new DescribeSecurityGroupReferencesResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Describes one or more of your security groups.
* </p>
* <p>
* A security group is for use with instances either in the EC2-Classic platform or in a specific VPC. For more
* information, see <a href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html">Amazon
* EC2 Security Groups</a> in the <i>Amazon Elastic Compute Cloud User Guide</i> and <a
* href="http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_SecurityGroups.html">Security Groups for Your
* VPC</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.
* </p>
*
* @param describeSecurityGroupsRequest
* Contains the parameters for DescribeSecurityGroups.
* @return Result of the DescribeSecurityGroups operation returned by the service.
* @sample AmazonEC2.DescribeSecurityGroups
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeSecurityGroups" target="_top">AWS API
* Documentation</a>
*/
@Override
public DescribeSecurityGroupsResult describeSecurityGroups(DescribeSecurityGroupsRequest request) {
request = beforeClientExecution(request);
return executeDescribeSecurityGroups(request);
}
@SdkInternalApi
final DescribeSecurityGroupsResult executeDescribeSecurityGroups(DescribeSecurityGroupsRequest describeSecurityGroupsRequest) {
ExecutionContext executionContext = createExecutionContext(describeSecurityGroupsRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DescribeSecurityGroupsRequest> request = null;
Response<DescribeSecurityGroupsResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DescribeSecurityGroupsRequestMarshaller().marshall(super.beforeMarshalling(describeSecurityGroupsRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DescribeSecurityGroupsResult> responseHandler = new StaxResponseHandler<DescribeSecurityGroupsResult>(
new DescribeSecurityGroupsResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
@Override
public DescribeSecurityGroupsResult describeSecurityGroups() {
return describeSecurityGroups(new DescribeSecurityGroupsRequest());
}
/**
* <p>
* Describes the specified attribute of the specified snapshot. You can specify only one attribute at a time.
* </p>
* <p>
* For more information about EBS snapshots, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSSnapshots.html">Amazon EBS Snapshots</a> in the
* <i>Amazon Elastic Compute Cloud User Guide</i>.
* </p>
*
* @param describeSnapshotAttributeRequest
* Contains the parameters for DescribeSnapshotAttribute.
* @return Result of the DescribeSnapshotAttribute operation returned by the service.
* @sample AmazonEC2.DescribeSnapshotAttribute
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeSnapshotAttribute" target="_top">AWS
* API Documentation</a>
*/
@Override
public DescribeSnapshotAttributeResult describeSnapshotAttribute(DescribeSnapshotAttributeRequest request) {
request = beforeClientExecution(request);
return executeDescribeSnapshotAttribute(request);
}
@SdkInternalApi
final DescribeSnapshotAttributeResult executeDescribeSnapshotAttribute(DescribeSnapshotAttributeRequest describeSnapshotAttributeRequest) {
ExecutionContext executionContext = createExecutionContext(describeSnapshotAttributeRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DescribeSnapshotAttributeRequest> request = null;
Response<DescribeSnapshotAttributeResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DescribeSnapshotAttributeRequestMarshaller().marshall(super.beforeMarshalling(describeSnapshotAttributeRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DescribeSnapshotAttributeResult> responseHandler = new StaxResponseHandler<DescribeSnapshotAttributeResult>(
new DescribeSnapshotAttributeResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Describes one or more of the EBS snapshots available to you. Available snapshots include public snapshots
* available for any AWS account to launch, private snapshots that you own, and private snapshots owned by another
* AWS account but for which you've been given explicit create volume permissions.
* </p>
* <p>
* The create volume permissions fall into the following categories:
* </p>
* <ul>
* <li>
* <p>
* <i>public</i>: The owner of the snapshot granted create volume permissions for the snapshot to the
* <code>all</code> group. All AWS accounts have create volume permissions for these snapshots.
* </p>
* </li>
* <li>
* <p>
* <i>explicit</i>: The owner of the snapshot granted create volume permissions to a specific AWS account.
* </p>
* </li>
* <li>
* <p>
* <i>implicit</i>: An AWS account has implicit create volume permissions for all snapshots it owns.
* </p>
* </li>
* </ul>
* <p>
* The list of snapshots returned can be modified by specifying snapshot IDs, snapshot owners, or AWS accounts with
* create volume permissions. If no options are specified, Amazon EC2 returns all snapshots for which you have
* create volume permissions.
* </p>
* <p>
* If you specify one or more snapshot IDs, only snapshots that have the specified IDs are returned. If you specify
* an invalid snapshot ID, an error is returned. If you specify a snapshot ID for which you do not have access, it
* is not included in the returned results.
* </p>
* <p>
* If you specify one or more snapshot owners using the <code>OwnerIds</code> option, only snapshots from the
* specified owners and for which you have access are returned. The results can include the AWS account IDs of the
* specified owners, <code>amazon</code> for snapshots owned by Amazon, or <code>self</code> for snapshots that you
* own.
* </p>
* <p>
* If you specify a list of restorable users, only snapshots with create snapshot permissions for those users are
* returned. You can specify AWS account IDs (if you own the snapshots), <code>self</code> for snapshots for which
* you own or have explicit permissions, or <code>all</code> for public snapshots.
* </p>
* <p>
* If you are describing a long list of snapshots, you can paginate the output to make the list more manageable. The
* <code>MaxResults</code> parameter sets the maximum number of results returned in a single page. If the list of
* results exceeds your <code>MaxResults</code> value, then that number of results is returned along with a
* <code>NextToken</code> value that can be passed to a subsequent <code>DescribeSnapshots</code> request to
* retrieve the remaining results.
* </p>
* <p>
* For more information about EBS snapshots, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSSnapshots.html">Amazon EBS Snapshots</a> in the
* <i>Amazon Elastic Compute Cloud User Guide</i>.
* </p>
*
* @param describeSnapshotsRequest
* Contains the parameters for DescribeSnapshots.
* @return Result of the DescribeSnapshots operation returned by the service.
* @sample AmazonEC2.DescribeSnapshots
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeSnapshots" target="_top">AWS API
* Documentation</a>
*/
@Override
public DescribeSnapshotsResult describeSnapshots(DescribeSnapshotsRequest request) {
request = beforeClientExecution(request);
return executeDescribeSnapshots(request);
}
@SdkInternalApi
final DescribeSnapshotsResult executeDescribeSnapshots(DescribeSnapshotsRequest describeSnapshotsRequest) {
ExecutionContext executionContext = createExecutionContext(describeSnapshotsRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DescribeSnapshotsRequest> request = null;
Response<DescribeSnapshotsResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DescribeSnapshotsRequestMarshaller().marshall(super.beforeMarshalling(describeSnapshotsRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DescribeSnapshotsResult> responseHandler = new StaxResponseHandler<DescribeSnapshotsResult>(
new DescribeSnapshotsResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
@Override
public DescribeSnapshotsResult describeSnapshots() {
return describeSnapshots(new DescribeSnapshotsRequest());
}
/**
* <p>
* Describes the data feed for Spot instances. For more information, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-data-feeds.html">Spot Instance Data Feed</a> in the
* <i>Amazon Elastic Compute Cloud User Guide</i>.
* </p>
*
* @param describeSpotDatafeedSubscriptionRequest
* Contains the parameters for DescribeSpotDatafeedSubscription.
* @return Result of the DescribeSpotDatafeedSubscription operation returned by the service.
* @sample AmazonEC2.DescribeSpotDatafeedSubscription
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeSpotDatafeedSubscription"
* target="_top">AWS API Documentation</a>
*/
@Override
public DescribeSpotDatafeedSubscriptionResult describeSpotDatafeedSubscription(DescribeSpotDatafeedSubscriptionRequest request) {
request = beforeClientExecution(request);
return executeDescribeSpotDatafeedSubscription(request);
}
@SdkInternalApi
final DescribeSpotDatafeedSubscriptionResult executeDescribeSpotDatafeedSubscription(
DescribeSpotDatafeedSubscriptionRequest describeSpotDatafeedSubscriptionRequest) {
ExecutionContext executionContext = createExecutionContext(describeSpotDatafeedSubscriptionRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DescribeSpotDatafeedSubscriptionRequest> request = null;
Response<DescribeSpotDatafeedSubscriptionResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DescribeSpotDatafeedSubscriptionRequestMarshaller().marshall(super.beforeMarshalling(describeSpotDatafeedSubscriptionRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DescribeSpotDatafeedSubscriptionResult> responseHandler = new StaxResponseHandler<DescribeSpotDatafeedSubscriptionResult>(
new DescribeSpotDatafeedSubscriptionResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
@Override
public DescribeSpotDatafeedSubscriptionResult describeSpotDatafeedSubscription() {
return describeSpotDatafeedSubscription(new DescribeSpotDatafeedSubscriptionRequest());
}
/**
* <p>
* Describes the running instances for the specified Spot fleet.
* </p>
*
* @param describeSpotFleetInstancesRequest
* Contains the parameters for DescribeSpotFleetInstances.
* @return Result of the DescribeSpotFleetInstances operation returned by the service.
* @sample AmazonEC2.DescribeSpotFleetInstances
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeSpotFleetInstances" target="_top">AWS
* API Documentation</a>
*/
@Override
public DescribeSpotFleetInstancesResult describeSpotFleetInstances(DescribeSpotFleetInstancesRequest request) {
request = beforeClientExecution(request);
return executeDescribeSpotFleetInstances(request);
}
@SdkInternalApi
final DescribeSpotFleetInstancesResult executeDescribeSpotFleetInstances(DescribeSpotFleetInstancesRequest describeSpotFleetInstancesRequest) {
ExecutionContext executionContext = createExecutionContext(describeSpotFleetInstancesRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DescribeSpotFleetInstancesRequest> request = null;
Response<DescribeSpotFleetInstancesResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DescribeSpotFleetInstancesRequestMarshaller().marshall(super.beforeMarshalling(describeSpotFleetInstancesRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DescribeSpotFleetInstancesResult> responseHandler = new StaxResponseHandler<DescribeSpotFleetInstancesResult>(
new DescribeSpotFleetInstancesResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Describes the events for the specified Spot fleet request during the specified time.
* </p>
* <p>
* Spot fleet events are delayed by up to 30 seconds before they can be described. This ensures that you can query
* by the last evaluated time and not miss a recorded event.
* </p>
*
* @param describeSpotFleetRequestHistoryRequest
* Contains the parameters for DescribeSpotFleetRequestHistory.
* @return Result of the DescribeSpotFleetRequestHistory operation returned by the service.
* @sample AmazonEC2.DescribeSpotFleetRequestHistory
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeSpotFleetRequestHistory"
* target="_top">AWS API Documentation</a>
*/
@Override
public DescribeSpotFleetRequestHistoryResult describeSpotFleetRequestHistory(DescribeSpotFleetRequestHistoryRequest request) {
request = beforeClientExecution(request);
return executeDescribeSpotFleetRequestHistory(request);
}
@SdkInternalApi
final DescribeSpotFleetRequestHistoryResult executeDescribeSpotFleetRequestHistory(
DescribeSpotFleetRequestHistoryRequest describeSpotFleetRequestHistoryRequest) {
ExecutionContext executionContext = createExecutionContext(describeSpotFleetRequestHistoryRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DescribeSpotFleetRequestHistoryRequest> request = null;
Response<DescribeSpotFleetRequestHistoryResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DescribeSpotFleetRequestHistoryRequestMarshaller().marshall(super.beforeMarshalling(describeSpotFleetRequestHistoryRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DescribeSpotFleetRequestHistoryResult> responseHandler = new StaxResponseHandler<DescribeSpotFleetRequestHistoryResult>(
new DescribeSpotFleetRequestHistoryResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Describes your Spot fleet requests.
* </p>
* <p>
* Spot fleet requests are deleted 48 hours after they are canceled and their instances are terminated.
* </p>
*
* @param describeSpotFleetRequestsRequest
* Contains the parameters for DescribeSpotFleetRequests.
* @return Result of the DescribeSpotFleetRequests operation returned by the service.
* @sample AmazonEC2.DescribeSpotFleetRequests
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeSpotFleetRequests" target="_top">AWS
* API Documentation</a>
*/
@Override
public DescribeSpotFleetRequestsResult describeSpotFleetRequests(DescribeSpotFleetRequestsRequest request) {
request = beforeClientExecution(request);
return executeDescribeSpotFleetRequests(request);
}
@SdkInternalApi
final DescribeSpotFleetRequestsResult executeDescribeSpotFleetRequests(DescribeSpotFleetRequestsRequest describeSpotFleetRequestsRequest) {
ExecutionContext executionContext = createExecutionContext(describeSpotFleetRequestsRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DescribeSpotFleetRequestsRequest> request = null;
Response<DescribeSpotFleetRequestsResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DescribeSpotFleetRequestsRequestMarshaller().marshall(super.beforeMarshalling(describeSpotFleetRequestsRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DescribeSpotFleetRequestsResult> responseHandler = new StaxResponseHandler<DescribeSpotFleetRequestsResult>(
new DescribeSpotFleetRequestsResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
@Override
public DescribeSpotFleetRequestsResult describeSpotFleetRequests() {
return describeSpotFleetRequests(new DescribeSpotFleetRequestsRequest());
}
/**
* <p>
* Describes the Spot instance requests that belong to your account. Spot instances are instances that Amazon EC2
* launches when the bid price that you specify exceeds the current Spot price. Amazon EC2 periodically sets the
* Spot price based on available Spot instance capacity and current Spot instance requests. For more information,
* see <a href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-requests.html">Spot Instance Requests</a> in
* the <i>Amazon Elastic Compute Cloud User Guide</i>.
* </p>
* <p>
* You can use <code>DescribeSpotInstanceRequests</code> to find a running Spot instance by examining the response.
* If the status of the Spot instance is <code>fulfilled</code>, the instance ID appears in the response and
* contains the identifier of the instance. Alternatively, you can use <a>DescribeInstances</a> with a filter to
* look for instances where the instance lifecycle is <code>spot</code>.
* </p>
* <p>
* Spot instance requests are deleted 4 hours after they are canceled and their instances are terminated.
* </p>
*
* @param describeSpotInstanceRequestsRequest
* Contains the parameters for DescribeSpotInstanceRequests.
* @return Result of the DescribeSpotInstanceRequests operation returned by the service.
* @sample AmazonEC2.DescribeSpotInstanceRequests
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeSpotInstanceRequests"
* target="_top">AWS API Documentation</a>
*/
@Override
public DescribeSpotInstanceRequestsResult describeSpotInstanceRequests(DescribeSpotInstanceRequestsRequest request) {
request = beforeClientExecution(request);
return executeDescribeSpotInstanceRequests(request);
}
@SdkInternalApi
final DescribeSpotInstanceRequestsResult executeDescribeSpotInstanceRequests(DescribeSpotInstanceRequestsRequest describeSpotInstanceRequestsRequest) {
ExecutionContext executionContext = createExecutionContext(describeSpotInstanceRequestsRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DescribeSpotInstanceRequestsRequest> request = null;
Response<DescribeSpotInstanceRequestsResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DescribeSpotInstanceRequestsRequestMarshaller().marshall(super.beforeMarshalling(describeSpotInstanceRequestsRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DescribeSpotInstanceRequestsResult> responseHandler = new StaxResponseHandler<DescribeSpotInstanceRequestsResult>(
new DescribeSpotInstanceRequestsResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
@Override
public DescribeSpotInstanceRequestsResult describeSpotInstanceRequests() {
return describeSpotInstanceRequests(new DescribeSpotInstanceRequestsRequest());
}
/**
* <p>
* Describes the Spot price history. For more information, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-spot-instances-history.html">Spot Instance Pricing
* History</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.
* </p>
* <p>
* When you specify a start and end time, this operation returns the prices of the instance types within the time
* range that you specified and the time when the price changed. The price is valid within the time period that you
* specified; the response merely indicates the last time that the price changed.
* </p>
*
* @param describeSpotPriceHistoryRequest
* Contains the parameters for DescribeSpotPriceHistory.
* @return Result of the DescribeSpotPriceHistory operation returned by the service.
* @sample AmazonEC2.DescribeSpotPriceHistory
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeSpotPriceHistory" target="_top">AWS
* API Documentation</a>
*/
@Override
public DescribeSpotPriceHistoryResult describeSpotPriceHistory(DescribeSpotPriceHistoryRequest request) {
request = beforeClientExecution(request);
return executeDescribeSpotPriceHistory(request);
}
@SdkInternalApi
final DescribeSpotPriceHistoryResult executeDescribeSpotPriceHistory(DescribeSpotPriceHistoryRequest describeSpotPriceHistoryRequest) {
ExecutionContext executionContext = createExecutionContext(describeSpotPriceHistoryRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DescribeSpotPriceHistoryRequest> request = null;
Response<DescribeSpotPriceHistoryResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DescribeSpotPriceHistoryRequestMarshaller().marshall(super.beforeMarshalling(describeSpotPriceHistoryRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DescribeSpotPriceHistoryResult> responseHandler = new StaxResponseHandler<DescribeSpotPriceHistoryResult>(
new DescribeSpotPriceHistoryResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
@Override
public DescribeSpotPriceHistoryResult describeSpotPriceHistory() {
return describeSpotPriceHistory(new DescribeSpotPriceHistoryRequest());
}
/**
* <p>
* [EC2-VPC only] Describes the stale security group rules for security groups in a specified VPC. Rules are stale
* when they reference a deleted security group in a peer VPC, or a security group in a peer VPC for which the VPC
* peering connection has been deleted.
* </p>
*
* @param describeStaleSecurityGroupsRequest
* @return Result of the DescribeStaleSecurityGroups operation returned by the service.
* @sample AmazonEC2.DescribeStaleSecurityGroups
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeStaleSecurityGroups"
* target="_top">AWS API Documentation</a>
*/
@Override
public DescribeStaleSecurityGroupsResult describeStaleSecurityGroups(DescribeStaleSecurityGroupsRequest request) {
request = beforeClientExecution(request);
return executeDescribeStaleSecurityGroups(request);
}
@SdkInternalApi
final DescribeStaleSecurityGroupsResult executeDescribeStaleSecurityGroups(DescribeStaleSecurityGroupsRequest describeStaleSecurityGroupsRequest) {
ExecutionContext executionContext = createExecutionContext(describeStaleSecurityGroupsRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DescribeStaleSecurityGroupsRequest> request = null;
Response<DescribeStaleSecurityGroupsResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DescribeStaleSecurityGroupsRequestMarshaller().marshall(super.beforeMarshalling(describeStaleSecurityGroupsRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DescribeStaleSecurityGroupsResult> responseHandler = new StaxResponseHandler<DescribeStaleSecurityGroupsResult>(
new DescribeStaleSecurityGroupsResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Describes one or more of your subnets.
* </p>
* <p>
* For more information about subnets, see <a
* href="http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Subnets.html">Your VPC and Subnets</a> in the
* <i>Amazon Virtual Private Cloud User Guide</i>.
* </p>
*
* @param describeSubnetsRequest
* Contains the parameters for DescribeSubnets.
* @return Result of the DescribeSubnets operation returned by the service.
* @sample AmazonEC2.DescribeSubnets
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeSubnets" target="_top">AWS API
* Documentation</a>
*/
@Override
public DescribeSubnetsResult describeSubnets(DescribeSubnetsRequest request) {
request = beforeClientExecution(request);
return executeDescribeSubnets(request);
}
@SdkInternalApi
final DescribeSubnetsResult executeDescribeSubnets(DescribeSubnetsRequest describeSubnetsRequest) {
ExecutionContext executionContext = createExecutionContext(describeSubnetsRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DescribeSubnetsRequest> request = null;
Response<DescribeSubnetsResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DescribeSubnetsRequestMarshaller().marshall(super.beforeMarshalling(describeSubnetsRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DescribeSubnetsResult> responseHandler = new StaxResponseHandler<DescribeSubnetsResult>(
new DescribeSubnetsResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
@Override
public DescribeSubnetsResult describeSubnets() {
return describeSubnets(new DescribeSubnetsRequest());
}
/**
* <p>
* Describes one or more of the tags for your EC2 resources.
* </p>
* <p>
* For more information about tags, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html">Tagging Your Resources</a> in the
* <i>Amazon Elastic Compute Cloud User Guide</i>.
* </p>
*
* @param describeTagsRequest
* Contains the parameters for DescribeTags.
* @return Result of the DescribeTags operation returned by the service.
* @sample AmazonEC2.DescribeTags
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeTags" target="_top">AWS API
* Documentation</a>
*/
@Override
public DescribeTagsResult describeTags(DescribeTagsRequest request) {
request = beforeClientExecution(request);
return executeDescribeTags(request);
}
@SdkInternalApi
final DescribeTagsResult executeDescribeTags(DescribeTagsRequest describeTagsRequest) {
ExecutionContext executionContext = createExecutionContext(describeTagsRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DescribeTagsRequest> request = null;
Response<DescribeTagsResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DescribeTagsRequestMarshaller().marshall(super.beforeMarshalling(describeTagsRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DescribeTagsResult> responseHandler = new StaxResponseHandler<DescribeTagsResult>(new DescribeTagsResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
@Override
public DescribeTagsResult describeTags() {
return describeTags(new DescribeTagsRequest());
}
/**
* <p>
* Describes the specified attribute of the specified volume. You can specify only one attribute at a time.
* </p>
* <p>
* For more information about EBS volumes, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumes.html">Amazon EBS Volumes</a> in the <i>Amazon
* Elastic Compute Cloud User Guide</i>.
* </p>
*
* @param describeVolumeAttributeRequest
* Contains the parameters for DescribeVolumeAttribute.
* @return Result of the DescribeVolumeAttribute operation returned by the service.
* @sample AmazonEC2.DescribeVolumeAttribute
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVolumeAttribute" target="_top">AWS
* API Documentation</a>
*/
@Override
public DescribeVolumeAttributeResult describeVolumeAttribute(DescribeVolumeAttributeRequest request) {
request = beforeClientExecution(request);
return executeDescribeVolumeAttribute(request);
}
@SdkInternalApi
final DescribeVolumeAttributeResult executeDescribeVolumeAttribute(DescribeVolumeAttributeRequest describeVolumeAttributeRequest) {
ExecutionContext executionContext = createExecutionContext(describeVolumeAttributeRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DescribeVolumeAttributeRequest> request = null;
Response<DescribeVolumeAttributeResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DescribeVolumeAttributeRequestMarshaller().marshall(super.beforeMarshalling(describeVolumeAttributeRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DescribeVolumeAttributeResult> responseHandler = new StaxResponseHandler<DescribeVolumeAttributeResult>(
new DescribeVolumeAttributeResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Describes the status of the specified volumes. Volume status provides the result of the checks performed on your
* volumes to determine events that can impair the performance of your volumes. The performance of a volume can be
* affected if an issue occurs on the volume's underlying host. If the volume's underlying host experiences a power
* outage or system issue, after the system is restored, there could be data inconsistencies on the volume. Volume
* events notify you if this occurs. Volume actions notify you if any action needs to be taken in response to the
* event.
* </p>
* <p>
* The <code>DescribeVolumeStatus</code> operation provides the following information about the specified volumes:
* </p>
* <p>
* <i>Status</i>: Reflects the current status of the volume. The possible values are <code>ok</code>,
* <code>impaired</code> , <code>warning</code>, or <code>insufficient-data</code>. If all checks pass, the overall
* status of the volume is <code>ok</code>. If the check fails, the overall status is <code>impaired</code>. If the
* status is <code>insufficient-data</code>, then the checks may still be taking place on your volume at the time.
* We recommend that you retry the request. For more information on volume status, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/monitoring-volume-status.html">Monitoring the Status of
* Your Volumes</a>.
* </p>
* <p>
* <i>Events</i>: Reflect the cause of a volume status and may require you to take action. For example, if your
* volume returns an <code>impaired</code> status, then the volume event might be
* <code>potential-data-inconsistency</code>. This means that your volume has been affected by an issue with the
* underlying host, has all I/O operations disabled, and may have inconsistent data.
* </p>
* <p>
* <i>Actions</i>: Reflect the actions you may have to take in response to an event. For example, if the status of
* the volume is <code>impaired</code> and the volume event shows <code>potential-data-inconsistency</code>, then
* the action shows <code>enable-volume-io</code>. This means that you may want to enable the I/O operations for the
* volume by calling the <a>EnableVolumeIO</a> action and then check the volume for data consistency.
* </p>
* <note>
* <p>
* Volume status is based on the volume status checks, and does not reflect the volume state. Therefore, volume
* status does not indicate volumes in the <code>error</code> state (for example, when a volume is incapable of
* accepting I/O.)
* </p>
* </note>
*
* @param describeVolumeStatusRequest
* Contains the parameters for DescribeVolumeStatus.
* @return Result of the DescribeVolumeStatus operation returned by the service.
* @sample AmazonEC2.DescribeVolumeStatus
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVolumeStatus" target="_top">AWS API
* Documentation</a>
*/
@Override
public DescribeVolumeStatusResult describeVolumeStatus(DescribeVolumeStatusRequest request) {
request = beforeClientExecution(request);
return executeDescribeVolumeStatus(request);
}
@SdkInternalApi
final DescribeVolumeStatusResult executeDescribeVolumeStatus(DescribeVolumeStatusRequest describeVolumeStatusRequest) {
ExecutionContext executionContext = createExecutionContext(describeVolumeStatusRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DescribeVolumeStatusRequest> request = null;
Response<DescribeVolumeStatusResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DescribeVolumeStatusRequestMarshaller().marshall(super.beforeMarshalling(describeVolumeStatusRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DescribeVolumeStatusResult> responseHandler = new StaxResponseHandler<DescribeVolumeStatusResult>(
new DescribeVolumeStatusResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
@Override
public DescribeVolumeStatusResult describeVolumeStatus() {
return describeVolumeStatus(new DescribeVolumeStatusRequest());
}
/**
* <p>
* Describes the specified EBS volumes.
* </p>
* <p>
* If you are describing a long list of volumes, you can paginate the output to make the list more manageable. The
* <code>MaxResults</code> parameter sets the maximum number of results returned in a single page. If the list of
* results exceeds your <code>MaxResults</code> value, then that number of results is returned along with a
* <code>NextToken</code> value that can be passed to a subsequent <code>DescribeVolumes</code> request to retrieve
* the remaining results.
* </p>
* <p>
* For more information about EBS volumes, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumes.html">Amazon EBS Volumes</a> in the <i>Amazon
* Elastic Compute Cloud User Guide</i>.
* </p>
*
* @param describeVolumesRequest
* Contains the parameters for DescribeVolumes.
* @return Result of the DescribeVolumes operation returned by the service.
* @sample AmazonEC2.DescribeVolumes
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVolumes" target="_top">AWS API
* Documentation</a>
*/
@Override
public DescribeVolumesResult describeVolumes(DescribeVolumesRequest request) {
request = beforeClientExecution(request);
return executeDescribeVolumes(request);
}
@SdkInternalApi
final DescribeVolumesResult executeDescribeVolumes(DescribeVolumesRequest describeVolumesRequest) {
ExecutionContext executionContext = createExecutionContext(describeVolumesRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DescribeVolumesRequest> request = null;
Response<DescribeVolumesResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DescribeVolumesRequestMarshaller().marshall(super.beforeMarshalling(describeVolumesRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DescribeVolumesResult> responseHandler = new StaxResponseHandler<DescribeVolumesResult>(
new DescribeVolumesResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
@Override
public DescribeVolumesResult describeVolumes() {
return describeVolumes(new DescribeVolumesRequest());
}
/**
* <p>
* Reports the current modification status of EBS volumes.
* </p>
* <p>
* Current-generation EBS volumes support modification of attributes including type, size, and (for <code>io1</code>
* volumes) IOPS provisioning while either attached to or detached from an instance. Following an action from the
* API or the console to modify a volume, the status of the modification may be <code>modifying</code>,
* <code>optimizing</code>, <code>completed</code>, or <code>failed</code>. If a volume has never been modified,
* then certain elements of the returned <code>VolumeModification</code> objects are null.
* </p>
* <p>
* You can also use CloudWatch Events to check the status of a modification to an EBS volume. For information about
* CloudWatch Events, see the <a href="http://docs.aws.amazon.com/AmazonCloudWatch/latest/events/">Amazon CloudWatch
* Events User Guide</a>. For more information, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-expand-volume.html#monitoring_mods">Monitoring
* Volume Modifications"</a>.
* </p>
*
* @param describeVolumesModificationsRequest
* @return Result of the DescribeVolumesModifications operation returned by the service.
* @sample AmazonEC2.DescribeVolumesModifications
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVolumesModifications"
* target="_top">AWS API Documentation</a>
*/
@Override
public DescribeVolumesModificationsResult describeVolumesModifications(DescribeVolumesModificationsRequest request) {
request = beforeClientExecution(request);
return executeDescribeVolumesModifications(request);
}
@SdkInternalApi
final DescribeVolumesModificationsResult executeDescribeVolumesModifications(DescribeVolumesModificationsRequest describeVolumesModificationsRequest) {
ExecutionContext executionContext = createExecutionContext(describeVolumesModificationsRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DescribeVolumesModificationsRequest> request = null;
Response<DescribeVolumesModificationsResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DescribeVolumesModificationsRequestMarshaller().marshall(super.beforeMarshalling(describeVolumesModificationsRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DescribeVolumesModificationsResult> responseHandler = new StaxResponseHandler<DescribeVolumesModificationsResult>(
new DescribeVolumesModificationsResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Describes the specified attribute of the specified VPC. You can specify only one attribute at a time.
* </p>
*
* @param describeVpcAttributeRequest
* Contains the parameters for DescribeVpcAttribute.
* @return Result of the DescribeVpcAttribute operation returned by the service.
* @sample AmazonEC2.DescribeVpcAttribute
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVpcAttribute" target="_top">AWS API
* Documentation</a>
*/
@Override
public DescribeVpcAttributeResult describeVpcAttribute(DescribeVpcAttributeRequest request) {
request = beforeClientExecution(request);
return executeDescribeVpcAttribute(request);
}
@SdkInternalApi
final DescribeVpcAttributeResult executeDescribeVpcAttribute(DescribeVpcAttributeRequest describeVpcAttributeRequest) {
ExecutionContext executionContext = createExecutionContext(describeVpcAttributeRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DescribeVpcAttributeRequest> request = null;
Response<DescribeVpcAttributeResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DescribeVpcAttributeRequestMarshaller().marshall(super.beforeMarshalling(describeVpcAttributeRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DescribeVpcAttributeResult> responseHandler = new StaxResponseHandler<DescribeVpcAttributeResult>(
new DescribeVpcAttributeResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Describes the ClassicLink status of one or more VPCs.
* </p>
*
* @param describeVpcClassicLinkRequest
* Contains the parameters for DescribeVpcClassicLink.
* @return Result of the DescribeVpcClassicLink operation returned by the service.
* @sample AmazonEC2.DescribeVpcClassicLink
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVpcClassicLink" target="_top">AWS API
* Documentation</a>
*/
@Override
public DescribeVpcClassicLinkResult describeVpcClassicLink(DescribeVpcClassicLinkRequest request) {
request = beforeClientExecution(request);
return executeDescribeVpcClassicLink(request);
}
@SdkInternalApi
final DescribeVpcClassicLinkResult executeDescribeVpcClassicLink(DescribeVpcClassicLinkRequest describeVpcClassicLinkRequest) {
ExecutionContext executionContext = createExecutionContext(describeVpcClassicLinkRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DescribeVpcClassicLinkRequest> request = null;
Response<DescribeVpcClassicLinkResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DescribeVpcClassicLinkRequestMarshaller().marshall(super.beforeMarshalling(describeVpcClassicLinkRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DescribeVpcClassicLinkResult> responseHandler = new StaxResponseHandler<DescribeVpcClassicLinkResult>(
new DescribeVpcClassicLinkResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
@Override
public DescribeVpcClassicLinkResult describeVpcClassicLink() {
return describeVpcClassicLink(new DescribeVpcClassicLinkRequest());
}
/**
* <p>
* Describes the ClassicLink DNS support status of one or more VPCs. If enabled, the DNS hostname of a linked
* EC2-Classic instance resolves to its private IP address when addressed from an instance in the VPC to which it's
* linked. Similarly, the DNS hostname of an instance in a VPC resolves to its private IP address when addressed
* from a linked EC2-Classic instance. For more information, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-classiclink.html">ClassicLink</a> in the <i>Amazon
* Elastic Compute Cloud User Guide</i>.
* </p>
*
* @param describeVpcClassicLinkDnsSupportRequest
* Contains the parameters for DescribeVpcClassicLinkDnsSupport.
* @return Result of the DescribeVpcClassicLinkDnsSupport operation returned by the service.
* @sample AmazonEC2.DescribeVpcClassicLinkDnsSupport
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVpcClassicLinkDnsSupport"
* target="_top">AWS API Documentation</a>
*/
@Override
public DescribeVpcClassicLinkDnsSupportResult describeVpcClassicLinkDnsSupport(DescribeVpcClassicLinkDnsSupportRequest request) {
request = beforeClientExecution(request);
return executeDescribeVpcClassicLinkDnsSupport(request);
}
@SdkInternalApi
final DescribeVpcClassicLinkDnsSupportResult executeDescribeVpcClassicLinkDnsSupport(
DescribeVpcClassicLinkDnsSupportRequest describeVpcClassicLinkDnsSupportRequest) {
ExecutionContext executionContext = createExecutionContext(describeVpcClassicLinkDnsSupportRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DescribeVpcClassicLinkDnsSupportRequest> request = null;
Response<DescribeVpcClassicLinkDnsSupportResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DescribeVpcClassicLinkDnsSupportRequestMarshaller().marshall(super.beforeMarshalling(describeVpcClassicLinkDnsSupportRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DescribeVpcClassicLinkDnsSupportResult> responseHandler = new StaxResponseHandler<DescribeVpcClassicLinkDnsSupportResult>(
new DescribeVpcClassicLinkDnsSupportResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Describes all supported AWS services that can be specified when creating a VPC endpoint.
* </p>
*
* @param describeVpcEndpointServicesRequest
* Contains the parameters for DescribeVpcEndpointServices.
* @return Result of the DescribeVpcEndpointServices operation returned by the service.
* @sample AmazonEC2.DescribeVpcEndpointServices
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVpcEndpointServices"
* target="_top">AWS API Documentation</a>
*/
@Override
public DescribeVpcEndpointServicesResult describeVpcEndpointServices(DescribeVpcEndpointServicesRequest request) {
request = beforeClientExecution(request);
return executeDescribeVpcEndpointServices(request);
}
@SdkInternalApi
final DescribeVpcEndpointServicesResult executeDescribeVpcEndpointServices(DescribeVpcEndpointServicesRequest describeVpcEndpointServicesRequest) {
ExecutionContext executionContext = createExecutionContext(describeVpcEndpointServicesRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DescribeVpcEndpointServicesRequest> request = null;
Response<DescribeVpcEndpointServicesResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DescribeVpcEndpointServicesRequestMarshaller().marshall(super.beforeMarshalling(describeVpcEndpointServicesRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DescribeVpcEndpointServicesResult> responseHandler = new StaxResponseHandler<DescribeVpcEndpointServicesResult>(
new DescribeVpcEndpointServicesResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
@Override
public DescribeVpcEndpointServicesResult describeVpcEndpointServices() {
return describeVpcEndpointServices(new DescribeVpcEndpointServicesRequest());
}
/**
* <p>
* Describes one or more of your VPC endpoints.
* </p>
*
* @param describeVpcEndpointsRequest
* Contains the parameters for DescribeVpcEndpoints.
* @return Result of the DescribeVpcEndpoints operation returned by the service.
* @sample AmazonEC2.DescribeVpcEndpoints
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVpcEndpoints" target="_top">AWS API
* Documentation</a>
*/
@Override
public DescribeVpcEndpointsResult describeVpcEndpoints(DescribeVpcEndpointsRequest request) {
request = beforeClientExecution(request);
return executeDescribeVpcEndpoints(request);
}
@SdkInternalApi
final DescribeVpcEndpointsResult executeDescribeVpcEndpoints(DescribeVpcEndpointsRequest describeVpcEndpointsRequest) {
ExecutionContext executionContext = createExecutionContext(describeVpcEndpointsRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DescribeVpcEndpointsRequest> request = null;
Response<DescribeVpcEndpointsResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DescribeVpcEndpointsRequestMarshaller().marshall(super.beforeMarshalling(describeVpcEndpointsRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DescribeVpcEndpointsResult> responseHandler = new StaxResponseHandler<DescribeVpcEndpointsResult>(
new DescribeVpcEndpointsResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
@Override
public DescribeVpcEndpointsResult describeVpcEndpoints() {
return describeVpcEndpoints(new DescribeVpcEndpointsRequest());
}
/**
* <p>
* Describes one or more of your VPC peering connections.
* </p>
*
* @param describeVpcPeeringConnectionsRequest
* Contains the parameters for DescribeVpcPeeringConnections.
* @return Result of the DescribeVpcPeeringConnections operation returned by the service.
* @sample AmazonEC2.DescribeVpcPeeringConnections
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVpcPeeringConnections"
* target="_top">AWS API Documentation</a>
*/
@Override
public DescribeVpcPeeringConnectionsResult describeVpcPeeringConnections(DescribeVpcPeeringConnectionsRequest request) {
request = beforeClientExecution(request);
return executeDescribeVpcPeeringConnections(request);
}
@SdkInternalApi
final DescribeVpcPeeringConnectionsResult executeDescribeVpcPeeringConnections(DescribeVpcPeeringConnectionsRequest describeVpcPeeringConnectionsRequest) {
ExecutionContext executionContext = createExecutionContext(describeVpcPeeringConnectionsRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DescribeVpcPeeringConnectionsRequest> request = null;
Response<DescribeVpcPeeringConnectionsResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DescribeVpcPeeringConnectionsRequestMarshaller().marshall(super.beforeMarshalling(describeVpcPeeringConnectionsRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DescribeVpcPeeringConnectionsResult> responseHandler = new StaxResponseHandler<DescribeVpcPeeringConnectionsResult>(
new DescribeVpcPeeringConnectionsResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
@Override
public DescribeVpcPeeringConnectionsResult describeVpcPeeringConnections() {
return describeVpcPeeringConnections(new DescribeVpcPeeringConnectionsRequest());
}
/**
* <p>
* Describes one or more of your VPCs.
* </p>
*
* @param describeVpcsRequest
* Contains the parameters for DescribeVpcs.
* @return Result of the DescribeVpcs operation returned by the service.
* @sample AmazonEC2.DescribeVpcs
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVpcs" target="_top">AWS API
* Documentation</a>
*/
@Override
public DescribeVpcsResult describeVpcs(DescribeVpcsRequest request) {
request = beforeClientExecution(request);
return executeDescribeVpcs(request);
}
@SdkInternalApi
final DescribeVpcsResult executeDescribeVpcs(DescribeVpcsRequest describeVpcsRequest) {
ExecutionContext executionContext = createExecutionContext(describeVpcsRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DescribeVpcsRequest> request = null;
Response<DescribeVpcsResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DescribeVpcsRequestMarshaller().marshall(super.beforeMarshalling(describeVpcsRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DescribeVpcsResult> responseHandler = new StaxResponseHandler<DescribeVpcsResult>(new DescribeVpcsResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
@Override
public DescribeVpcsResult describeVpcs() {
return describeVpcs(new DescribeVpcsRequest());
}
/**
* <p>
* Describes one or more of your VPN connections.
* </p>
* <p>
* For more information about VPN connections, see <a
* href="http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_VPN.html">Adding a Hardware Virtual Private
* Gateway to Your VPC</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.
* </p>
*
* @param describeVpnConnectionsRequest
* Contains the parameters for DescribeVpnConnections.
* @return Result of the DescribeVpnConnections operation returned by the service.
* @sample AmazonEC2.DescribeVpnConnections
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVpnConnections" target="_top">AWS API
* Documentation</a>
*/
@Override
public DescribeVpnConnectionsResult describeVpnConnections(DescribeVpnConnectionsRequest request) {
request = beforeClientExecution(request);
return executeDescribeVpnConnections(request);
}
@SdkInternalApi
final DescribeVpnConnectionsResult executeDescribeVpnConnections(DescribeVpnConnectionsRequest describeVpnConnectionsRequest) {
ExecutionContext executionContext = createExecutionContext(describeVpnConnectionsRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DescribeVpnConnectionsRequest> request = null;
Response<DescribeVpnConnectionsResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DescribeVpnConnectionsRequestMarshaller().marshall(super.beforeMarshalling(describeVpnConnectionsRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DescribeVpnConnectionsResult> responseHandler = new StaxResponseHandler<DescribeVpnConnectionsResult>(
new DescribeVpnConnectionsResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
@Override
public DescribeVpnConnectionsResult describeVpnConnections() {
return describeVpnConnections(new DescribeVpnConnectionsRequest());
}
/**
* <p>
* Describes one or more of your virtual private gateways.
* </p>
* <p>
* For more information about virtual private gateways, see <a
* href="http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_VPN.html">Adding an IPsec Hardware VPN to Your
* VPC</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.
* </p>
*
* @param describeVpnGatewaysRequest
* Contains the parameters for DescribeVpnGateways.
* @return Result of the DescribeVpnGateways operation returned by the service.
* @sample AmazonEC2.DescribeVpnGateways
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVpnGateways" target="_top">AWS API
* Documentation</a>
*/
@Override
public DescribeVpnGatewaysResult describeVpnGateways(DescribeVpnGatewaysRequest request) {
request = beforeClientExecution(request);
return executeDescribeVpnGateways(request);
}
@SdkInternalApi
final DescribeVpnGatewaysResult executeDescribeVpnGateways(DescribeVpnGatewaysRequest describeVpnGatewaysRequest) {
ExecutionContext executionContext = createExecutionContext(describeVpnGatewaysRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DescribeVpnGatewaysRequest> request = null;
Response<DescribeVpnGatewaysResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DescribeVpnGatewaysRequestMarshaller().marshall(super.beforeMarshalling(describeVpnGatewaysRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DescribeVpnGatewaysResult> responseHandler = new StaxResponseHandler<DescribeVpnGatewaysResult>(
new DescribeVpnGatewaysResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
@Override
public DescribeVpnGatewaysResult describeVpnGateways() {
return describeVpnGateways(new DescribeVpnGatewaysRequest());
}
/**
* <p>
* Unlinks (detaches) a linked EC2-Classic instance from a VPC. After the instance has been unlinked, the VPC
* security groups are no longer associated with it. An instance is automatically unlinked from a VPC when it's
* stopped.
* </p>
*
* @param detachClassicLinkVpcRequest
* Contains the parameters for DetachClassicLinkVpc.
* @return Result of the DetachClassicLinkVpc operation returned by the service.
* @sample AmazonEC2.DetachClassicLinkVpc
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DetachClassicLinkVpc" target="_top">AWS API
* Documentation</a>
*/
@Override
public DetachClassicLinkVpcResult detachClassicLinkVpc(DetachClassicLinkVpcRequest request) {
request = beforeClientExecution(request);
return executeDetachClassicLinkVpc(request);
}
@SdkInternalApi
final DetachClassicLinkVpcResult executeDetachClassicLinkVpc(DetachClassicLinkVpcRequest detachClassicLinkVpcRequest) {
ExecutionContext executionContext = createExecutionContext(detachClassicLinkVpcRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DetachClassicLinkVpcRequest> request = null;
Response<DetachClassicLinkVpcResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DetachClassicLinkVpcRequestMarshaller().marshall(super.beforeMarshalling(detachClassicLinkVpcRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DetachClassicLinkVpcResult> responseHandler = new StaxResponseHandler<DetachClassicLinkVpcResult>(
new DetachClassicLinkVpcResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Detaches an Internet gateway from a VPC, disabling connectivity between the Internet and the VPC. The VPC must
* not contain any running instances with Elastic IP addresses or public IPv4 addresses.
* </p>
*
* @param detachInternetGatewayRequest
* Contains the parameters for DetachInternetGateway.
* @return Result of the DetachInternetGateway operation returned by the service.
* @sample AmazonEC2.DetachInternetGateway
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DetachInternetGateway" target="_top">AWS API
* Documentation</a>
*/
@Override
public DetachInternetGatewayResult detachInternetGateway(DetachInternetGatewayRequest request) {
request = beforeClientExecution(request);
return executeDetachInternetGateway(request);
}
@SdkInternalApi
final DetachInternetGatewayResult executeDetachInternetGateway(DetachInternetGatewayRequest detachInternetGatewayRequest) {
ExecutionContext executionContext = createExecutionContext(detachInternetGatewayRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DetachInternetGatewayRequest> request = null;
Response<DetachInternetGatewayResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DetachInternetGatewayRequestMarshaller().marshall(super.beforeMarshalling(detachInternetGatewayRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DetachInternetGatewayResult> responseHandler = new StaxResponseHandler<DetachInternetGatewayResult>(
new DetachInternetGatewayResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Detaches a network interface from an instance.
* </p>
*
* @param detachNetworkInterfaceRequest
* Contains the parameters for DetachNetworkInterface.
* @return Result of the DetachNetworkInterface operation returned by the service.
* @sample AmazonEC2.DetachNetworkInterface
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DetachNetworkInterface" target="_top">AWS API
* Documentation</a>
*/
@Override
public DetachNetworkInterfaceResult detachNetworkInterface(DetachNetworkInterfaceRequest request) {
request = beforeClientExecution(request);
return executeDetachNetworkInterface(request);
}
@SdkInternalApi
final DetachNetworkInterfaceResult executeDetachNetworkInterface(DetachNetworkInterfaceRequest detachNetworkInterfaceRequest) {
ExecutionContext executionContext = createExecutionContext(detachNetworkInterfaceRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DetachNetworkInterfaceRequest> request = null;
Response<DetachNetworkInterfaceResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DetachNetworkInterfaceRequestMarshaller().marshall(super.beforeMarshalling(detachNetworkInterfaceRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DetachNetworkInterfaceResult> responseHandler = new StaxResponseHandler<DetachNetworkInterfaceResult>(
new DetachNetworkInterfaceResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Detaches an EBS volume from an instance. Make sure to unmount any file systems on the device within your
* operating system before detaching the volume. Failure to do so can result in the volume becoming stuck in the
* <code>busy</code> state while detaching. If this happens, detachment can be delayed indefinitely until you
* unmount the volume, force detachment, reboot the instance, or all three. If an EBS volume is the root device of
* an instance, it can't be detached while the instance is running. To detach the root volume, stop the instance
* first.
* </p>
* <p>
* When a volume with an AWS Marketplace product code is detached from an instance, the product code is no longer
* associated with the instance.
* </p>
* <p>
* For more information, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-detaching-volume.html">Detaching an Amazon EBS
* Volume</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.
* </p>
*
* @param detachVolumeRequest
* Contains the parameters for DetachVolume.
* @return Result of the DetachVolume operation returned by the service.
* @sample AmazonEC2.DetachVolume
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DetachVolume" target="_top">AWS API
* Documentation</a>
*/
@Override
public DetachVolumeResult detachVolume(DetachVolumeRequest request) {
request = beforeClientExecution(request);
return executeDetachVolume(request);
}
@SdkInternalApi
final DetachVolumeResult executeDetachVolume(DetachVolumeRequest detachVolumeRequest) {
ExecutionContext executionContext = createExecutionContext(detachVolumeRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DetachVolumeRequest> request = null;
Response<DetachVolumeResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DetachVolumeRequestMarshaller().marshall(super.beforeMarshalling(detachVolumeRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DetachVolumeResult> responseHandler = new StaxResponseHandler<DetachVolumeResult>(new DetachVolumeResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Detaches a virtual private gateway from a VPC. You do this if you're planning to turn off the VPC and not use it
* anymore. You can confirm a virtual private gateway has been completely detached from a VPC by describing the
* virtual private gateway (any attachments to the virtual private gateway are also described).
* </p>
* <p>
* You must wait for the attachment's state to switch to <code>detached</code> before you can delete the VPC or
* attach a different VPC to the virtual private gateway.
* </p>
*
* @param detachVpnGatewayRequest
* Contains the parameters for DetachVpnGateway.
* @return Result of the DetachVpnGateway operation returned by the service.
* @sample AmazonEC2.DetachVpnGateway
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DetachVpnGateway" target="_top">AWS API
* Documentation</a>
*/
@Override
public DetachVpnGatewayResult detachVpnGateway(DetachVpnGatewayRequest request) {
request = beforeClientExecution(request);
return executeDetachVpnGateway(request);
}
@SdkInternalApi
final DetachVpnGatewayResult executeDetachVpnGateway(DetachVpnGatewayRequest detachVpnGatewayRequest) {
ExecutionContext executionContext = createExecutionContext(detachVpnGatewayRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DetachVpnGatewayRequest> request = null;
Response<DetachVpnGatewayResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DetachVpnGatewayRequestMarshaller().marshall(super.beforeMarshalling(detachVpnGatewayRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DetachVpnGatewayResult> responseHandler = new StaxResponseHandler<DetachVpnGatewayResult>(
new DetachVpnGatewayResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Disables a virtual private gateway (VGW) from propagating routes to a specified route table of a VPC.
* </p>
*
* @param disableVgwRoutePropagationRequest
* Contains the parameters for DisableVgwRoutePropagation.
* @return Result of the DisableVgwRoutePropagation operation returned by the service.
* @sample AmazonEC2.DisableVgwRoutePropagation
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisableVgwRoutePropagation" target="_top">AWS
* API Documentation</a>
*/
@Override
public DisableVgwRoutePropagationResult disableVgwRoutePropagation(DisableVgwRoutePropagationRequest request) {
request = beforeClientExecution(request);
return executeDisableVgwRoutePropagation(request);
}
@SdkInternalApi
final DisableVgwRoutePropagationResult executeDisableVgwRoutePropagation(DisableVgwRoutePropagationRequest disableVgwRoutePropagationRequest) {
ExecutionContext executionContext = createExecutionContext(disableVgwRoutePropagationRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DisableVgwRoutePropagationRequest> request = null;
Response<DisableVgwRoutePropagationResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DisableVgwRoutePropagationRequestMarshaller().marshall(super.beforeMarshalling(disableVgwRoutePropagationRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DisableVgwRoutePropagationResult> responseHandler = new StaxResponseHandler<DisableVgwRoutePropagationResult>(
new DisableVgwRoutePropagationResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Disables ClassicLink for a VPC. You cannot disable ClassicLink for a VPC that has EC2-Classic instances linked to
* it.
* </p>
*
* @param disableVpcClassicLinkRequest
* Contains the parameters for DisableVpcClassicLink.
* @return Result of the DisableVpcClassicLink operation returned by the service.
* @sample AmazonEC2.DisableVpcClassicLink
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisableVpcClassicLink" target="_top">AWS API
* Documentation</a>
*/
@Override
public DisableVpcClassicLinkResult disableVpcClassicLink(DisableVpcClassicLinkRequest request) {
request = beforeClientExecution(request);
return executeDisableVpcClassicLink(request);
}
@SdkInternalApi
final DisableVpcClassicLinkResult executeDisableVpcClassicLink(DisableVpcClassicLinkRequest disableVpcClassicLinkRequest) {
ExecutionContext executionContext = createExecutionContext(disableVpcClassicLinkRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DisableVpcClassicLinkRequest> request = null;
Response<DisableVpcClassicLinkResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DisableVpcClassicLinkRequestMarshaller().marshall(super.beforeMarshalling(disableVpcClassicLinkRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DisableVpcClassicLinkResult> responseHandler = new StaxResponseHandler<DisableVpcClassicLinkResult>(
new DisableVpcClassicLinkResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Disables ClassicLink DNS support for a VPC. If disabled, DNS hostnames resolve to public IP addresses when
* addressed between a linked EC2-Classic instance and instances in the VPC to which it's linked. For more
* information about ClassicLink, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-classiclink.html">ClassicLink</a> in the <i>Amazon
* Elastic Compute Cloud User Guide</i>.
* </p>
*
* @param disableVpcClassicLinkDnsSupportRequest
* Contains the parameters for DisableVpcClassicLinkDnsSupport.
* @return Result of the DisableVpcClassicLinkDnsSupport operation returned by the service.
* @sample AmazonEC2.DisableVpcClassicLinkDnsSupport
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisableVpcClassicLinkDnsSupport"
* target="_top">AWS API Documentation</a>
*/
@Override
public DisableVpcClassicLinkDnsSupportResult disableVpcClassicLinkDnsSupport(DisableVpcClassicLinkDnsSupportRequest request) {
request = beforeClientExecution(request);
return executeDisableVpcClassicLinkDnsSupport(request);
}
@SdkInternalApi
final DisableVpcClassicLinkDnsSupportResult executeDisableVpcClassicLinkDnsSupport(
DisableVpcClassicLinkDnsSupportRequest disableVpcClassicLinkDnsSupportRequest) {
ExecutionContext executionContext = createExecutionContext(disableVpcClassicLinkDnsSupportRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DisableVpcClassicLinkDnsSupportRequest> request = null;
Response<DisableVpcClassicLinkDnsSupportResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DisableVpcClassicLinkDnsSupportRequestMarshaller().marshall(super.beforeMarshalling(disableVpcClassicLinkDnsSupportRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DisableVpcClassicLinkDnsSupportResult> responseHandler = new StaxResponseHandler<DisableVpcClassicLinkDnsSupportResult>(
new DisableVpcClassicLinkDnsSupportResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Disassociates an Elastic IP address from the instance or network interface it's associated with.
* </p>
* <p>
* An Elastic IP address is for use in either the EC2-Classic platform or in a VPC. For more information, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html">Elastic IP Addresses</a>
* in the <i>Amazon Elastic Compute Cloud User Guide</i>.
* </p>
* <p>
* This is an idempotent operation. If you perform the operation more than once, Amazon EC2 doesn't return an error.
* </p>
*
* @param disassociateAddressRequest
* Contains the parameters for DisassociateAddress.
* @return Result of the DisassociateAddress operation returned by the service.
* @sample AmazonEC2.DisassociateAddress
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisassociateAddress" target="_top">AWS API
* Documentation</a>
*/
@Override
public DisassociateAddressResult disassociateAddress(DisassociateAddressRequest request) {
request = beforeClientExecution(request);
return executeDisassociateAddress(request);
}
@SdkInternalApi
final DisassociateAddressResult executeDisassociateAddress(DisassociateAddressRequest disassociateAddressRequest) {
ExecutionContext executionContext = createExecutionContext(disassociateAddressRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DisassociateAddressRequest> request = null;
Response<DisassociateAddressResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DisassociateAddressRequestMarshaller().marshall(super.beforeMarshalling(disassociateAddressRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DisassociateAddressResult> responseHandler = new StaxResponseHandler<DisassociateAddressResult>(
new DisassociateAddressResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Disassociates an IAM instance profile from a running or stopped instance.
* </p>
* <p>
* Use <a>DescribeIamInstanceProfileAssociations</a> to get the association ID.
* </p>
*
* @param disassociateIamInstanceProfileRequest
* @return Result of the DisassociateIamInstanceProfile operation returned by the service.
* @sample AmazonEC2.DisassociateIamInstanceProfile
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisassociateIamInstanceProfile"
* target="_top">AWS API Documentation</a>
*/
@Override
public DisassociateIamInstanceProfileResult disassociateIamInstanceProfile(DisassociateIamInstanceProfileRequest request) {
request = beforeClientExecution(request);
return executeDisassociateIamInstanceProfile(request);
}
@SdkInternalApi
final DisassociateIamInstanceProfileResult executeDisassociateIamInstanceProfile(DisassociateIamInstanceProfileRequest disassociateIamInstanceProfileRequest) {
ExecutionContext executionContext = createExecutionContext(disassociateIamInstanceProfileRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DisassociateIamInstanceProfileRequest> request = null;
Response<DisassociateIamInstanceProfileResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DisassociateIamInstanceProfileRequestMarshaller().marshall(super.beforeMarshalling(disassociateIamInstanceProfileRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DisassociateIamInstanceProfileResult> responseHandler = new StaxResponseHandler<DisassociateIamInstanceProfileResult>(
new DisassociateIamInstanceProfileResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Disassociates a subnet from a route table.
* </p>
* <p>
* After you perform this action, the subnet no longer uses the routes in the route table. Instead, it uses the
* routes in the VPC's main route table. For more information about route tables, see <a
* href="http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Route_Tables.html">Route Tables</a> in the
* <i>Amazon Virtual Private Cloud User Guide</i>.
* </p>
*
* @param disassociateRouteTableRequest
* Contains the parameters for DisassociateRouteTable.
* @return Result of the DisassociateRouteTable operation returned by the service.
* @sample AmazonEC2.DisassociateRouteTable
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisassociateRouteTable" target="_top">AWS API
* Documentation</a>
*/
@Override
public DisassociateRouteTableResult disassociateRouteTable(DisassociateRouteTableRequest request) {
request = beforeClientExecution(request);
return executeDisassociateRouteTable(request);
}
@SdkInternalApi
final DisassociateRouteTableResult executeDisassociateRouteTable(DisassociateRouteTableRequest disassociateRouteTableRequest) {
ExecutionContext executionContext = createExecutionContext(disassociateRouteTableRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DisassociateRouteTableRequest> request = null;
Response<DisassociateRouteTableResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DisassociateRouteTableRequestMarshaller().marshall(super.beforeMarshalling(disassociateRouteTableRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DisassociateRouteTableResult> responseHandler = new StaxResponseHandler<DisassociateRouteTableResult>(
new DisassociateRouteTableResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Disassociates a CIDR block from a subnet. Currently, you can disassociate an IPv6 CIDR block only. You must
* detach or delete all gateways and resources that are associated with the CIDR block before you can disassociate
* it.
* </p>
*
* @param disassociateSubnetCidrBlockRequest
* @return Result of the DisassociateSubnetCidrBlock operation returned by the service.
* @sample AmazonEC2.DisassociateSubnetCidrBlock
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisassociateSubnetCidrBlock"
* target="_top">AWS API Documentation</a>
*/
@Override
public DisassociateSubnetCidrBlockResult disassociateSubnetCidrBlock(DisassociateSubnetCidrBlockRequest request) {
request = beforeClientExecution(request);
return executeDisassociateSubnetCidrBlock(request);
}
@SdkInternalApi
final DisassociateSubnetCidrBlockResult executeDisassociateSubnetCidrBlock(DisassociateSubnetCidrBlockRequest disassociateSubnetCidrBlockRequest) {
ExecutionContext executionContext = createExecutionContext(disassociateSubnetCidrBlockRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DisassociateSubnetCidrBlockRequest> request = null;
Response<DisassociateSubnetCidrBlockResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DisassociateSubnetCidrBlockRequestMarshaller().marshall(super.beforeMarshalling(disassociateSubnetCidrBlockRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DisassociateSubnetCidrBlockResult> responseHandler = new StaxResponseHandler<DisassociateSubnetCidrBlockResult>(
new DisassociateSubnetCidrBlockResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Disassociates a CIDR block from a VPC. Currently, you can disassociate an IPv6 CIDR block only. You must detach
* or delete all gateways and resources that are associated with the CIDR block before you can disassociate it.
* </p>
*
* @param disassociateVpcCidrBlockRequest
* @return Result of the DisassociateVpcCidrBlock operation returned by the service.
* @sample AmazonEC2.DisassociateVpcCidrBlock
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisassociateVpcCidrBlock" target="_top">AWS
* API Documentation</a>
*/
@Override
public DisassociateVpcCidrBlockResult disassociateVpcCidrBlock(DisassociateVpcCidrBlockRequest request) {
request = beforeClientExecution(request);
return executeDisassociateVpcCidrBlock(request);
}
@SdkInternalApi
final DisassociateVpcCidrBlockResult executeDisassociateVpcCidrBlock(DisassociateVpcCidrBlockRequest disassociateVpcCidrBlockRequest) {
ExecutionContext executionContext = createExecutionContext(disassociateVpcCidrBlockRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<DisassociateVpcCidrBlockRequest> request = null;
Response<DisassociateVpcCidrBlockResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DisassociateVpcCidrBlockRequestMarshaller().marshall(super.beforeMarshalling(disassociateVpcCidrBlockRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<DisassociateVpcCidrBlockResult> responseHandler = new StaxResponseHandler<DisassociateVpcCidrBlockResult>(
new DisassociateVpcCidrBlockResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Enables a virtual private gateway (VGW) to propagate routes to the specified route table of a VPC.
* </p>
*
* @param enableVgwRoutePropagationRequest
* Contains the parameters for EnableVgwRoutePropagation.
* @return Result of the EnableVgwRoutePropagation operation returned by the service.
* @sample AmazonEC2.EnableVgwRoutePropagation
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/EnableVgwRoutePropagation" target="_top">AWS
* API Documentation</a>
*/
@Override
public EnableVgwRoutePropagationResult enableVgwRoutePropagation(EnableVgwRoutePropagationRequest request) {
request = beforeClientExecution(request);
return executeEnableVgwRoutePropagation(request);
}
@SdkInternalApi
final EnableVgwRoutePropagationResult executeEnableVgwRoutePropagation(EnableVgwRoutePropagationRequest enableVgwRoutePropagationRequest) {
ExecutionContext executionContext = createExecutionContext(enableVgwRoutePropagationRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<EnableVgwRoutePropagationRequest> request = null;
Response<EnableVgwRoutePropagationResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new EnableVgwRoutePropagationRequestMarshaller().marshall(super.beforeMarshalling(enableVgwRoutePropagationRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<EnableVgwRoutePropagationResult> responseHandler = new StaxResponseHandler<EnableVgwRoutePropagationResult>(
new EnableVgwRoutePropagationResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Enables I/O operations for a volume that had I/O operations disabled because the data on the volume was
* potentially inconsistent.
* </p>
*
* @param enableVolumeIORequest
* Contains the parameters for EnableVolumeIO.
* @return Result of the EnableVolumeIO operation returned by the service.
* @sample AmazonEC2.EnableVolumeIO
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/EnableVolumeIO" target="_top">AWS API
* Documentation</a>
*/
@Override
public EnableVolumeIOResult enableVolumeIO(EnableVolumeIORequest request) {
request = beforeClientExecution(request);
return executeEnableVolumeIO(request);
}
@SdkInternalApi
final EnableVolumeIOResult executeEnableVolumeIO(EnableVolumeIORequest enableVolumeIORequest) {
ExecutionContext executionContext = createExecutionContext(enableVolumeIORequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<EnableVolumeIORequest> request = null;
Response<EnableVolumeIOResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new EnableVolumeIORequestMarshaller().marshall(super.beforeMarshalling(enableVolumeIORequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<EnableVolumeIOResult> responseHandler = new StaxResponseHandler<EnableVolumeIOResult>(
new EnableVolumeIOResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Enables a VPC for ClassicLink. You can then link EC2-Classic instances to your ClassicLink-enabled VPC to allow
* communication over private IP addresses. You cannot enable your VPC for ClassicLink if any of your VPC's route
* tables have existing routes for address ranges within the <code>10.0.0.0/8</code> IP address range, excluding
* local routes for VPCs in the <code>10.0.0.0/16</code> and <code>10.1.0.0/16</code> IP address ranges. For more
* information, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-classiclink.html">ClassicLink</a> in the <i>Amazon
* Elastic Compute Cloud User Guide</i>.
* </p>
*
* @param enableVpcClassicLinkRequest
* Contains the parameters for EnableVpcClassicLink.
* @return Result of the EnableVpcClassicLink operation returned by the service.
* @sample AmazonEC2.EnableVpcClassicLink
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/EnableVpcClassicLink" target="_top">AWS API
* Documentation</a>
*/
@Override
public EnableVpcClassicLinkResult enableVpcClassicLink(EnableVpcClassicLinkRequest request) {
request = beforeClientExecution(request);
return executeEnableVpcClassicLink(request);
}
@SdkInternalApi
final EnableVpcClassicLinkResult executeEnableVpcClassicLink(EnableVpcClassicLinkRequest enableVpcClassicLinkRequest) {
ExecutionContext executionContext = createExecutionContext(enableVpcClassicLinkRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<EnableVpcClassicLinkRequest> request = null;
Response<EnableVpcClassicLinkResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new EnableVpcClassicLinkRequestMarshaller().marshall(super.beforeMarshalling(enableVpcClassicLinkRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<EnableVpcClassicLinkResult> responseHandler = new StaxResponseHandler<EnableVpcClassicLinkResult>(
new EnableVpcClassicLinkResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Enables a VPC to support DNS hostname resolution for ClassicLink. If enabled, the DNS hostname of a linked
* EC2-Classic instance resolves to its private IP address when addressed from an instance in the VPC to which it's
* linked. Similarly, the DNS hostname of an instance in a VPC resolves to its private IP address when addressed
* from a linked EC2-Classic instance. For more information about ClassicLink, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-classiclink.html">ClassicLink</a> in the <i>Amazon
* Elastic Compute Cloud User Guide</i>.
* </p>
*
* @param enableVpcClassicLinkDnsSupportRequest
* Contains the parameters for EnableVpcClassicLinkDnsSupport.
* @return Result of the EnableVpcClassicLinkDnsSupport operation returned by the service.
* @sample AmazonEC2.EnableVpcClassicLinkDnsSupport
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/EnableVpcClassicLinkDnsSupport"
* target="_top">AWS API Documentation</a>
*/
@Override
public EnableVpcClassicLinkDnsSupportResult enableVpcClassicLinkDnsSupport(EnableVpcClassicLinkDnsSupportRequest request) {
request = beforeClientExecution(request);
return executeEnableVpcClassicLinkDnsSupport(request);
}
@SdkInternalApi
final EnableVpcClassicLinkDnsSupportResult executeEnableVpcClassicLinkDnsSupport(EnableVpcClassicLinkDnsSupportRequest enableVpcClassicLinkDnsSupportRequest) {
ExecutionContext executionContext = createExecutionContext(enableVpcClassicLinkDnsSupportRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<EnableVpcClassicLinkDnsSupportRequest> request = null;
Response<EnableVpcClassicLinkDnsSupportResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new EnableVpcClassicLinkDnsSupportRequestMarshaller().marshall(super.beforeMarshalling(enableVpcClassicLinkDnsSupportRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<EnableVpcClassicLinkDnsSupportResult> responseHandler = new StaxResponseHandler<EnableVpcClassicLinkDnsSupportResult>(
new EnableVpcClassicLinkDnsSupportResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Gets the console output for the specified instance.
* </p>
* <p>
* Instances do not have a physical monitor through which you can view their console output. They also lack physical
* controls that allow you to power up, reboot, or shut them down. To allow these actions, we provide them through
* the Amazon EC2 API and command line interface.
* </p>
* <p>
* Instance console output is buffered and posted shortly after instance boot, reboot, and termination. Amazon EC2
* preserves the most recent 64 KB output which is available for at least one hour after the most recent post.
* </p>
* <p>
* For Linux instances, the instance console output displays the exact console output that would normally be
* displayed on a physical monitor attached to a computer. This output is buffered because the instance produces it
* and then posts it to a store where the instance's owner can retrieve it.
* </p>
* <p>
* For Windows instances, the instance console output includes output from the EC2Config service.
* </p>
*
* @param getConsoleOutputRequest
* Contains the parameters for GetConsoleOutput.
* @return Result of the GetConsoleOutput operation returned by the service.
* @sample AmazonEC2.GetConsoleOutput
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetConsoleOutput" target="_top">AWS API
* Documentation</a>
*/
@Override
public GetConsoleOutputResult getConsoleOutput(GetConsoleOutputRequest request) {
request = beforeClientExecution(request);
return executeGetConsoleOutput(request);
}
@SdkInternalApi
final GetConsoleOutputResult executeGetConsoleOutput(GetConsoleOutputRequest getConsoleOutputRequest) {
ExecutionContext executionContext = createExecutionContext(getConsoleOutputRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<GetConsoleOutputRequest> request = null;
Response<GetConsoleOutputResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new GetConsoleOutputRequestMarshaller().marshall(super.beforeMarshalling(getConsoleOutputRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<GetConsoleOutputResult> responseHandler = new StaxResponseHandler<GetConsoleOutputResult>(
new GetConsoleOutputResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Retrieve a JPG-format screenshot of a running instance to help with troubleshooting.
* </p>
* <p>
* The returned content is Base64-encoded.
* </p>
*
* @param getConsoleScreenshotRequest
* Contains the parameters for the request.
* @return Result of the GetConsoleScreenshot operation returned by the service.
* @sample AmazonEC2.GetConsoleScreenshot
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetConsoleScreenshot" target="_top">AWS API
* Documentation</a>
*/
@Override
public GetConsoleScreenshotResult getConsoleScreenshot(GetConsoleScreenshotRequest request) {
request = beforeClientExecution(request);
return executeGetConsoleScreenshot(request);
}
@SdkInternalApi
final GetConsoleScreenshotResult executeGetConsoleScreenshot(GetConsoleScreenshotRequest getConsoleScreenshotRequest) {
ExecutionContext executionContext = createExecutionContext(getConsoleScreenshotRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<GetConsoleScreenshotRequest> request = null;
Response<GetConsoleScreenshotResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new GetConsoleScreenshotRequestMarshaller().marshall(super.beforeMarshalling(getConsoleScreenshotRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<GetConsoleScreenshotResult> responseHandler = new StaxResponseHandler<GetConsoleScreenshotResult>(
new GetConsoleScreenshotResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Preview a reservation purchase with configurations that match those of your Dedicated Host. You must have active
* Dedicated Hosts in your account before you purchase a reservation.
* </p>
* <p>
* This is a preview of the <a>PurchaseHostReservation</a> action and does not result in the offering being
* purchased.
* </p>
*
* @param getHostReservationPurchasePreviewRequest
* @return Result of the GetHostReservationPurchasePreview operation returned by the service.
* @sample AmazonEC2.GetHostReservationPurchasePreview
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetHostReservationPurchasePreview"
* target="_top">AWS API Documentation</a>
*/
@Override
public GetHostReservationPurchasePreviewResult getHostReservationPurchasePreview(GetHostReservationPurchasePreviewRequest request) {
request = beforeClientExecution(request);
return executeGetHostReservationPurchasePreview(request);
}
@SdkInternalApi
final GetHostReservationPurchasePreviewResult executeGetHostReservationPurchasePreview(
GetHostReservationPurchasePreviewRequest getHostReservationPurchasePreviewRequest) {
ExecutionContext executionContext = createExecutionContext(getHostReservationPurchasePreviewRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<GetHostReservationPurchasePreviewRequest> request = null;
Response<GetHostReservationPurchasePreviewResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new GetHostReservationPurchasePreviewRequestMarshaller().marshall(super.beforeMarshalling(getHostReservationPurchasePreviewRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<GetHostReservationPurchasePreviewResult> responseHandler = new StaxResponseHandler<GetHostReservationPurchasePreviewResult>(
new GetHostReservationPurchasePreviewResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Retrieves the encrypted administrator password for an instance running Windows.
* </p>
* <p>
* The Windows password is generated at boot if the <code>EC2Config</code> service plugin,
* <code>Ec2SetPassword</code>, is enabled. This usually only happens the first time an AMI is launched, and then
* <code>Ec2SetPassword</code> is automatically disabled. The password is not generated for rebundled AMIs unless
* <code>Ec2SetPassword</code> is enabled before bundling.
* </p>
* <p>
* The password is encrypted using the key pair that you specified when you launched the instance. You must provide
* the corresponding key pair file.
* </p>
* <p>
* Password generation and encryption takes a few moments. We recommend that you wait up to 15 minutes after
* launching an instance before trying to retrieve the generated password.
* </p>
*
* @param getPasswordDataRequest
* Contains the parameters for GetPasswordData.
* @return Result of the GetPasswordData operation returned by the service.
* @sample AmazonEC2.GetPasswordData
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetPasswordData" target="_top">AWS API
* Documentation</a>
*/
@Override
public GetPasswordDataResult getPasswordData(GetPasswordDataRequest request) {
request = beforeClientExecution(request);
return executeGetPasswordData(request);
}
@SdkInternalApi
final GetPasswordDataResult executeGetPasswordData(GetPasswordDataRequest getPasswordDataRequest) {
ExecutionContext executionContext = createExecutionContext(getPasswordDataRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<GetPasswordDataRequest> request = null;
Response<GetPasswordDataResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new GetPasswordDataRequestMarshaller().marshall(super.beforeMarshalling(getPasswordDataRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<GetPasswordDataResult> responseHandler = new StaxResponseHandler<GetPasswordDataResult>(
new GetPasswordDataResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Returns details about the values and term of your specified Convertible Reserved Instances. When a target
* configuration is specified, it returns information about whether the exchange is valid and can be performed.
* </p>
*
* @param getReservedInstancesExchangeQuoteRequest
* Contains the parameters for GetReservedInstanceExchangeQuote.
* @return Result of the GetReservedInstancesExchangeQuote operation returned by the service.
* @sample AmazonEC2.GetReservedInstancesExchangeQuote
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetReservedInstancesExchangeQuote"
* target="_top">AWS API Documentation</a>
*/
@Override
public GetReservedInstancesExchangeQuoteResult getReservedInstancesExchangeQuote(GetReservedInstancesExchangeQuoteRequest request) {
request = beforeClientExecution(request);
return executeGetReservedInstancesExchangeQuote(request);
}
@SdkInternalApi
final GetReservedInstancesExchangeQuoteResult executeGetReservedInstancesExchangeQuote(
GetReservedInstancesExchangeQuoteRequest getReservedInstancesExchangeQuoteRequest) {
ExecutionContext executionContext = createExecutionContext(getReservedInstancesExchangeQuoteRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<GetReservedInstancesExchangeQuoteRequest> request = null;
Response<GetReservedInstancesExchangeQuoteResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new GetReservedInstancesExchangeQuoteRequestMarshaller().marshall(super.beforeMarshalling(getReservedInstancesExchangeQuoteRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<GetReservedInstancesExchangeQuoteResult> responseHandler = new StaxResponseHandler<GetReservedInstancesExchangeQuoteResult>(
new GetReservedInstancesExchangeQuoteResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Import single or multi-volume disk images or EBS snapshots into an Amazon Machine Image (AMI). For more
* information, see <a
* href="http://docs.aws.amazon.com/vm-import/latest/userguide/vmimport-image-import.html">Importing a VM as an
* Image Using VM Import/Export</a> in the <i>VM Import/Export User Guide</i>.
* </p>
*
* @param importImageRequest
* Contains the parameters for ImportImage.
* @return Result of the ImportImage operation returned by the service.
* @sample AmazonEC2.ImportImage
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ImportImage" target="_top">AWS API
* Documentation</a>
*/
@Override
public ImportImageResult importImage(ImportImageRequest request) {
request = beforeClientExecution(request);
return executeImportImage(request);
}
@SdkInternalApi
final ImportImageResult executeImportImage(ImportImageRequest importImageRequest) {
ExecutionContext executionContext = createExecutionContext(importImageRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<ImportImageRequest> request = null;
Response<ImportImageResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ImportImageRequestMarshaller().marshall(super.beforeMarshalling(importImageRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<ImportImageResult> responseHandler = new StaxResponseHandler<ImportImageResult>(new ImportImageResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
@Override
public ImportImageResult importImage() {
return importImage(new ImportImageRequest());
}
/**
* <p>
* Creates an import instance task using metadata from the specified disk image. <code>ImportInstance</code> only
* supports single-volume VMs. To import multi-volume VMs, use <a>ImportImage</a>. For more information, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/CommandLineReference/ec2-cli-vmimport-export.html">Importing a
* Virtual Machine Using the Amazon EC2 CLI</a>.
* </p>
* <p>
* For information about the import manifest referenced by this API action, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/APIReference/manifest.html">VM Import Manifest</a>.
* </p>
*
* @param importInstanceRequest
* Contains the parameters for ImportInstance.
* @return Result of the ImportInstance operation returned by the service.
* @sample AmazonEC2.ImportInstance
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ImportInstance" target="_top">AWS API
* Documentation</a>
*/
@Override
public ImportInstanceResult importInstance(ImportInstanceRequest request) {
request = beforeClientExecution(request);
return executeImportInstance(request);
}
@SdkInternalApi
final ImportInstanceResult executeImportInstance(ImportInstanceRequest importInstanceRequest) {
ExecutionContext executionContext = createExecutionContext(importInstanceRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<ImportInstanceRequest> request = null;
Response<ImportInstanceResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ImportInstanceRequestMarshaller().marshall(super.beforeMarshalling(importInstanceRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<ImportInstanceResult> responseHandler = new StaxResponseHandler<ImportInstanceResult>(
new ImportInstanceResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Imports the public key from an RSA key pair that you created with a third-party tool. Compare this with
* <a>CreateKeyPair</a>, in which AWS creates the key pair and gives the keys to you (AWS keeps a copy of the public
* key). With ImportKeyPair, you create the key pair and give AWS just the public key. The private key is never
* transferred between you and AWS.
* </p>
* <p>
* For more information about key pairs, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html">Key Pairs</a> in the <i>Amazon
* Elastic Compute Cloud User Guide</i>.
* </p>
*
* @param importKeyPairRequest
* Contains the parameters for ImportKeyPair.
* @return Result of the ImportKeyPair operation returned by the service.
* @sample AmazonEC2.ImportKeyPair
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ImportKeyPair" target="_top">AWS API
* Documentation</a>
*/
@Override
public ImportKeyPairResult importKeyPair(ImportKeyPairRequest request) {
request = beforeClientExecution(request);
return executeImportKeyPair(request);
}
@SdkInternalApi
final ImportKeyPairResult executeImportKeyPair(ImportKeyPairRequest importKeyPairRequest) {
ExecutionContext executionContext = createExecutionContext(importKeyPairRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<ImportKeyPairRequest> request = null;
Response<ImportKeyPairResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ImportKeyPairRequestMarshaller().marshall(super.beforeMarshalling(importKeyPairRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<ImportKeyPairResult> responseHandler = new StaxResponseHandler<ImportKeyPairResult>(new ImportKeyPairResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Imports a disk into an EBS snapshot.
* </p>
*
* @param importSnapshotRequest
* Contains the parameters for ImportSnapshot.
* @return Result of the ImportSnapshot operation returned by the service.
* @sample AmazonEC2.ImportSnapshot
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ImportSnapshot" target="_top">AWS API
* Documentation</a>
*/
@Override
public ImportSnapshotResult importSnapshot(ImportSnapshotRequest request) {
request = beforeClientExecution(request);
return executeImportSnapshot(request);
}
@SdkInternalApi
final ImportSnapshotResult executeImportSnapshot(ImportSnapshotRequest importSnapshotRequest) {
ExecutionContext executionContext = createExecutionContext(importSnapshotRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<ImportSnapshotRequest> request = null;
Response<ImportSnapshotResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ImportSnapshotRequestMarshaller().marshall(super.beforeMarshalling(importSnapshotRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<ImportSnapshotResult> responseHandler = new StaxResponseHandler<ImportSnapshotResult>(
new ImportSnapshotResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
@Override
public ImportSnapshotResult importSnapshot() {
return importSnapshot(new ImportSnapshotRequest());
}
/**
* <p>
* Creates an import volume task using metadata from the specified disk image.For more information, see <a href=
* "http://docs.aws.amazon.com/AWSEC2/latest/CommandLineReference/importing-your-volumes-into-amazon-ebs.html"
* >Importing Disks to Amazon EBS</a>.
* </p>
* <p>
* For information about the import manifest referenced by this API action, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/APIReference/manifest.html">VM Import Manifest</a>.
* </p>
*
* @param importVolumeRequest
* Contains the parameters for ImportVolume.
* @return Result of the ImportVolume operation returned by the service.
* @sample AmazonEC2.ImportVolume
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ImportVolume" target="_top">AWS API
* Documentation</a>
*/
@Override
public ImportVolumeResult importVolume(ImportVolumeRequest request) {
request = beforeClientExecution(request);
return executeImportVolume(request);
}
@SdkInternalApi
final ImportVolumeResult executeImportVolume(ImportVolumeRequest importVolumeRequest) {
ExecutionContext executionContext = createExecutionContext(importVolumeRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<ImportVolumeRequest> request = null;
Response<ImportVolumeResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ImportVolumeRequestMarshaller().marshall(super.beforeMarshalling(importVolumeRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<ImportVolumeResult> responseHandler = new StaxResponseHandler<ImportVolumeResult>(new ImportVolumeResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Modify the auto-placement setting of a Dedicated Host. When auto-placement is enabled, AWS will place instances
* that you launch with a tenancy of <code>host</code>, but without targeting a specific host ID, onto any available
* Dedicated Host in your account which has auto-placement enabled. When auto-placement is disabled, you need to
* provide a host ID if you want the instance to launch onto a specific host. If no host ID is provided, the
* instance will be launched onto a suitable host which has auto-placement enabled.
* </p>
*
* @param modifyHostsRequest
* Contains the parameters for ModifyHosts.
* @return Result of the ModifyHosts operation returned by the service.
* @sample AmazonEC2.ModifyHosts
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyHosts" target="_top">AWS API
* Documentation</a>
*/
@Override
public ModifyHostsResult modifyHosts(ModifyHostsRequest request) {
request = beforeClientExecution(request);
return executeModifyHosts(request);
}
@SdkInternalApi
final ModifyHostsResult executeModifyHosts(ModifyHostsRequest modifyHostsRequest) {
ExecutionContext executionContext = createExecutionContext(modifyHostsRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<ModifyHostsRequest> request = null;
Response<ModifyHostsResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ModifyHostsRequestMarshaller().marshall(super.beforeMarshalling(modifyHostsRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<ModifyHostsResult> responseHandler = new StaxResponseHandler<ModifyHostsResult>(new ModifyHostsResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Modifies the ID format for the specified resource on a per-region basis. You can specify that resources should
* receive longer IDs (17-character IDs) when they are created. The following resource types support longer IDs:
* <code>instance</code> | <code>reservation</code> | <code>snapshot</code> | <code>volume</code>.
* </p>
* <p>
* This setting applies to the IAM user who makes the request; it does not apply to the entire AWS account. By
* default, an IAM user defaults to the same settings as the root user. If you're using this action as the root
* user, then these settings apply to the entire account, unless an IAM user explicitly overrides these settings for
* themselves. For more information, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/resource-ids.html">Resource IDs</a> in the <i>Amazon
* Elastic Compute Cloud User Guide</i>.
* </p>
* <p>
* Resources created with longer IDs are visible to all IAM roles and users, regardless of these settings and
* provided that they have permission to use the relevant <code>Describe</code> command for the resource type.
* </p>
*
* @param modifyIdFormatRequest
* Contains the parameters of ModifyIdFormat.
* @return Result of the ModifyIdFormat operation returned by the service.
* @sample AmazonEC2.ModifyIdFormat
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyIdFormat" target="_top">AWS API
* Documentation</a>
*/
@Override
public ModifyIdFormatResult modifyIdFormat(ModifyIdFormatRequest request) {
request = beforeClientExecution(request);
return executeModifyIdFormat(request);
}
@SdkInternalApi
final ModifyIdFormatResult executeModifyIdFormat(ModifyIdFormatRequest modifyIdFormatRequest) {
ExecutionContext executionContext = createExecutionContext(modifyIdFormatRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<ModifyIdFormatRequest> request = null;
Response<ModifyIdFormatResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ModifyIdFormatRequestMarshaller().marshall(super.beforeMarshalling(modifyIdFormatRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<ModifyIdFormatResult> responseHandler = new StaxResponseHandler<ModifyIdFormatResult>(
new ModifyIdFormatResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Modifies the ID format of a resource for a specified IAM user, IAM role, or the root user for an account; or all
* IAM users, IAM roles, and the root user for an account. You can specify that resources should receive longer IDs
* (17-character IDs) when they are created.
* </p>
* <p>
* The following resource types support longer IDs: <code>instance</code> | <code>reservation</code> |
* <code>snapshot</code> | <code>volume</code>. For more information, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/resource-ids.html">Resource IDs</a> in the <i>Amazon
* Elastic Compute Cloud User Guide</i>.
* </p>
* <p>
* This setting applies to the principal specified in the request; it does not apply to the principal that makes the
* request.
* </p>
* <p>
* Resources created with longer IDs are visible to all IAM roles and users, regardless of these settings and
* provided that they have permission to use the relevant <code>Describe</code> command for the resource type.
* </p>
*
* @param modifyIdentityIdFormatRequest
* Contains the parameters of ModifyIdentityIdFormat.
* @return Result of the ModifyIdentityIdFormat operation returned by the service.
* @sample AmazonEC2.ModifyIdentityIdFormat
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyIdentityIdFormat" target="_top">AWS API
* Documentation</a>
*/
@Override
public ModifyIdentityIdFormatResult modifyIdentityIdFormat(ModifyIdentityIdFormatRequest request) {
request = beforeClientExecution(request);
return executeModifyIdentityIdFormat(request);
}
@SdkInternalApi
final ModifyIdentityIdFormatResult executeModifyIdentityIdFormat(ModifyIdentityIdFormatRequest modifyIdentityIdFormatRequest) {
ExecutionContext executionContext = createExecutionContext(modifyIdentityIdFormatRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<ModifyIdentityIdFormatRequest> request = null;
Response<ModifyIdentityIdFormatResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ModifyIdentityIdFormatRequestMarshaller().marshall(super.beforeMarshalling(modifyIdentityIdFormatRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<ModifyIdentityIdFormatResult> responseHandler = new StaxResponseHandler<ModifyIdentityIdFormatResult>(
new ModifyIdentityIdFormatResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Modifies the specified attribute of the specified AMI. You can specify only one attribute at a time.
* </p>
* <note>
* <p>
* AWS Marketplace product codes cannot be modified. Images with an AWS Marketplace product code cannot be made
* public.
* </p>
* </note> <note>
* <p>
* The SriovNetSupport enhanced networking attribute cannot be changed using this command. Instead, enable
* SriovNetSupport on an instance and create an AMI from the instance. This will result in an image with
* SriovNetSupport enabled.
* </p>
* </note>
*
* @param modifyImageAttributeRequest
* Contains the parameters for ModifyImageAttribute.
* @return Result of the ModifyImageAttribute operation returned by the service.
* @sample AmazonEC2.ModifyImageAttribute
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyImageAttribute" target="_top">AWS API
* Documentation</a>
*/
@Override
public ModifyImageAttributeResult modifyImageAttribute(ModifyImageAttributeRequest request) {
request = beforeClientExecution(request);
return executeModifyImageAttribute(request);
}
@SdkInternalApi
final ModifyImageAttributeResult executeModifyImageAttribute(ModifyImageAttributeRequest modifyImageAttributeRequest) {
ExecutionContext executionContext = createExecutionContext(modifyImageAttributeRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<ModifyImageAttributeRequest> request = null;
Response<ModifyImageAttributeResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ModifyImageAttributeRequestMarshaller().marshall(super.beforeMarshalling(modifyImageAttributeRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<ModifyImageAttributeResult> responseHandler = new StaxResponseHandler<ModifyImageAttributeResult>(
new ModifyImageAttributeResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Modifies the specified attribute of the specified instance. You can specify only one attribute at a time.
* </p>
* <p>
* To modify some attributes, the instance must be stopped. For more information, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_ChangingAttributesWhileInstanceStopped.html"
* >Modifying Attributes of a Stopped Instance</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.
* </p>
*
* @param modifyInstanceAttributeRequest
* Contains the parameters for ModifyInstanceAttribute.
* @return Result of the ModifyInstanceAttribute operation returned by the service.
* @sample AmazonEC2.ModifyInstanceAttribute
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyInstanceAttribute" target="_top">AWS
* API Documentation</a>
*/
@Override
public ModifyInstanceAttributeResult modifyInstanceAttribute(ModifyInstanceAttributeRequest request) {
request = beforeClientExecution(request);
return executeModifyInstanceAttribute(request);
}
@SdkInternalApi
final ModifyInstanceAttributeResult executeModifyInstanceAttribute(ModifyInstanceAttributeRequest modifyInstanceAttributeRequest) {
ExecutionContext executionContext = createExecutionContext(modifyInstanceAttributeRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<ModifyInstanceAttributeRequest> request = null;
Response<ModifyInstanceAttributeResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ModifyInstanceAttributeRequestMarshaller().marshall(super.beforeMarshalling(modifyInstanceAttributeRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<ModifyInstanceAttributeResult> responseHandler = new StaxResponseHandler<ModifyInstanceAttributeResult>(
new ModifyInstanceAttributeResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Set the instance affinity value for a specific stopped instance and modify the instance tenancy setting.
* </p>
* <p>
* Instance affinity is disabled by default. When instance affinity is <code>host</code> and it is not associated
* with a specific Dedicated Host, the next time it is launched it will automatically be associated with the host it
* lands on. This relationship will persist if the instance is stopped/started, or rebooted.
* </p>
* <p>
* You can modify the host ID associated with a stopped instance. If a stopped instance has a new host ID
* association, the instance will target that host when restarted.
* </p>
* <p>
* You can modify the tenancy of a stopped instance with a tenancy of <code>host</code> or <code>dedicated</code>.
* </p>
* <p>
* Affinity, hostID, and tenancy are not required parameters, but at least one of them must be specified in the
* request. Affinity and tenancy can be modified in the same request, but tenancy can only be modified on instances
* that are stopped.
* </p>
*
* @param modifyInstancePlacementRequest
* Contains the parameters for ModifyInstancePlacement.
* @return Result of the ModifyInstancePlacement operation returned by the service.
* @sample AmazonEC2.ModifyInstancePlacement
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyInstancePlacement" target="_top">AWS
* API Documentation</a>
*/
@Override
public ModifyInstancePlacementResult modifyInstancePlacement(ModifyInstancePlacementRequest request) {
request = beforeClientExecution(request);
return executeModifyInstancePlacement(request);
}
@SdkInternalApi
final ModifyInstancePlacementResult executeModifyInstancePlacement(ModifyInstancePlacementRequest modifyInstancePlacementRequest) {
ExecutionContext executionContext = createExecutionContext(modifyInstancePlacementRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<ModifyInstancePlacementRequest> request = null;
Response<ModifyInstancePlacementResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ModifyInstancePlacementRequestMarshaller().marshall(super.beforeMarshalling(modifyInstancePlacementRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<ModifyInstancePlacementResult> responseHandler = new StaxResponseHandler<ModifyInstancePlacementResult>(
new ModifyInstancePlacementResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Modifies the specified network interface attribute. You can specify only one attribute at a time.
* </p>
*
* @param modifyNetworkInterfaceAttributeRequest
* Contains the parameters for ModifyNetworkInterfaceAttribute.
* @return Result of the ModifyNetworkInterfaceAttribute operation returned by the service.
* @sample AmazonEC2.ModifyNetworkInterfaceAttribute
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyNetworkInterfaceAttribute"
* target="_top">AWS API Documentation</a>
*/
@Override
public ModifyNetworkInterfaceAttributeResult modifyNetworkInterfaceAttribute(ModifyNetworkInterfaceAttributeRequest request) {
request = beforeClientExecution(request);
return executeModifyNetworkInterfaceAttribute(request);
}
@SdkInternalApi
final ModifyNetworkInterfaceAttributeResult executeModifyNetworkInterfaceAttribute(
ModifyNetworkInterfaceAttributeRequest modifyNetworkInterfaceAttributeRequest) {
ExecutionContext executionContext = createExecutionContext(modifyNetworkInterfaceAttributeRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<ModifyNetworkInterfaceAttributeRequest> request = null;
Response<ModifyNetworkInterfaceAttributeResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ModifyNetworkInterfaceAttributeRequestMarshaller().marshall(super.beforeMarshalling(modifyNetworkInterfaceAttributeRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<ModifyNetworkInterfaceAttributeResult> responseHandler = new StaxResponseHandler<ModifyNetworkInterfaceAttributeResult>(
new ModifyNetworkInterfaceAttributeResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Modifies the Availability Zone, instance count, instance type, or network platform (EC2-Classic or EC2-VPC) of
* your Standard Reserved Instances. The Reserved Instances to be modified must be identical, except for
* Availability Zone, network platform, and instance type.
* </p>
* <p>
* For more information, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-modifying.html">Modifying Reserved Instances</a> in
* the Amazon Elastic Compute Cloud User Guide.
* </p>
*
* @param modifyReservedInstancesRequest
* Contains the parameters for ModifyReservedInstances.
* @return Result of the ModifyReservedInstances operation returned by the service.
* @sample AmazonEC2.ModifyReservedInstances
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyReservedInstances" target="_top">AWS
* API Documentation</a>
*/
@Override
public ModifyReservedInstancesResult modifyReservedInstances(ModifyReservedInstancesRequest request) {
request = beforeClientExecution(request);
return executeModifyReservedInstances(request);
}
@SdkInternalApi
final ModifyReservedInstancesResult executeModifyReservedInstances(ModifyReservedInstancesRequest modifyReservedInstancesRequest) {
ExecutionContext executionContext = createExecutionContext(modifyReservedInstancesRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<ModifyReservedInstancesRequest> request = null;
Response<ModifyReservedInstancesResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ModifyReservedInstancesRequestMarshaller().marshall(super.beforeMarshalling(modifyReservedInstancesRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<ModifyReservedInstancesResult> responseHandler = new StaxResponseHandler<ModifyReservedInstancesResult>(
new ModifyReservedInstancesResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Adds or removes permission settings for the specified snapshot. You may add or remove specified AWS account IDs
* from a snapshot's list of create volume permissions, but you cannot do both in a single API call. If you need to
* both add and remove account IDs for a snapshot, you must use multiple API calls.
* </p>
* <note>
* <p>
* Encrypted snapshots and snapshots with AWS Marketplace product codes cannot be made public. Snapshots encrypted
* with your default CMK cannot be shared with other accounts.
* </p>
* </note>
* <p>
* For more information on modifying snapshot permissions, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-modifying-snapshot-permissions.html">Sharing
* Snapshots</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.
* </p>
*
* @param modifySnapshotAttributeRequest
* Contains the parameters for ModifySnapshotAttribute.
* @return Result of the ModifySnapshotAttribute operation returned by the service.
* @sample AmazonEC2.ModifySnapshotAttribute
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifySnapshotAttribute" target="_top">AWS
* API Documentation</a>
*/
@Override
public ModifySnapshotAttributeResult modifySnapshotAttribute(ModifySnapshotAttributeRequest request) {
request = beforeClientExecution(request);
return executeModifySnapshotAttribute(request);
}
@SdkInternalApi
final ModifySnapshotAttributeResult executeModifySnapshotAttribute(ModifySnapshotAttributeRequest modifySnapshotAttributeRequest) {
ExecutionContext executionContext = createExecutionContext(modifySnapshotAttributeRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<ModifySnapshotAttributeRequest> request = null;
Response<ModifySnapshotAttributeResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ModifySnapshotAttributeRequestMarshaller().marshall(super.beforeMarshalling(modifySnapshotAttributeRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<ModifySnapshotAttributeResult> responseHandler = new StaxResponseHandler<ModifySnapshotAttributeResult>(
new ModifySnapshotAttributeResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Modifies the specified Spot fleet request.
* </p>
* <p>
* While the Spot fleet request is being modified, it is in the <code>modifying</code> state.
* </p>
* <p>
* To scale up your Spot fleet, increase its target capacity. The Spot fleet launches the additional Spot instances
* according to the allocation strategy for the Spot fleet request. If the allocation strategy is
* <code>lowestPrice</code>, the Spot fleet launches instances using the Spot pool with the lowest price. If the
* allocation strategy is <code>diversified</code>, the Spot fleet distributes the instances across the Spot pools.
* </p>
* <p>
* To scale down your Spot fleet, decrease its target capacity. First, the Spot fleet cancels any open bids that
* exceed the new target capacity. You can request that the Spot fleet terminate Spot instances until the size of
* the fleet no longer exceeds the new target capacity. If the allocation strategy is <code>lowestPrice</code>, the
* Spot fleet terminates the instances with the highest price per unit. If the allocation strategy is
* <code>diversified</code>, the Spot fleet terminates instances across the Spot pools. Alternatively, you can
* request that the Spot fleet keep the fleet at its current size, but not replace any Spot instances that are
* interrupted or that you terminate manually.
* </p>
*
* @param modifySpotFleetRequestRequest
* Contains the parameters for ModifySpotFleetRequest.
* @return Result of the ModifySpotFleetRequest operation returned by the service.
* @sample AmazonEC2.ModifySpotFleetRequest
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifySpotFleetRequest" target="_top">AWS API
* Documentation</a>
*/
@Override
public ModifySpotFleetRequestResult modifySpotFleetRequest(ModifySpotFleetRequestRequest request) {
request = beforeClientExecution(request);
return executeModifySpotFleetRequest(request);
}
@SdkInternalApi
final ModifySpotFleetRequestResult executeModifySpotFleetRequest(ModifySpotFleetRequestRequest modifySpotFleetRequestRequest) {
ExecutionContext executionContext = createExecutionContext(modifySpotFleetRequestRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<ModifySpotFleetRequestRequest> request = null;
Response<ModifySpotFleetRequestResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ModifySpotFleetRequestRequestMarshaller().marshall(super.beforeMarshalling(modifySpotFleetRequestRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<ModifySpotFleetRequestResult> responseHandler = new StaxResponseHandler<ModifySpotFleetRequestResult>(
new ModifySpotFleetRequestResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Modifies a subnet attribute. You can only modify one attribute at a time.
* </p>
*
* @param modifySubnetAttributeRequest
* Contains the parameters for ModifySubnetAttribute.
* @return Result of the ModifySubnetAttribute operation returned by the service.
* @sample AmazonEC2.ModifySubnetAttribute
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifySubnetAttribute" target="_top">AWS API
* Documentation</a>
*/
@Override
public ModifySubnetAttributeResult modifySubnetAttribute(ModifySubnetAttributeRequest request) {
request = beforeClientExecution(request);
return executeModifySubnetAttribute(request);
}
@SdkInternalApi
final ModifySubnetAttributeResult executeModifySubnetAttribute(ModifySubnetAttributeRequest modifySubnetAttributeRequest) {
ExecutionContext executionContext = createExecutionContext(modifySubnetAttributeRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<ModifySubnetAttributeRequest> request = null;
Response<ModifySubnetAttributeResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ModifySubnetAttributeRequestMarshaller().marshall(super.beforeMarshalling(modifySubnetAttributeRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<ModifySubnetAttributeResult> responseHandler = new StaxResponseHandler<ModifySubnetAttributeResult>(
new ModifySubnetAttributeResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* You can modify several parameters of an existing EBS volume, including volume size, volume type, and IOPS
* capacity. If your EBS volume is attached to a current-generation EC2 instance type, you may be able to apply
* these changes without stopping the instance or detaching the volume from it. For more information about modifying
* an EBS volume running Linux, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-expand-volume.html">Modifying the Size, IOPS, or
* Type of an EBS Volume on Linux</a>. For more information about modifying an EBS volume running Windows, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ebs-expand-volume.html">Modifying the Size, IOPS, or
* Type of an EBS Volume on Windows</a>.
* </p>
* <p>
* When you complete a resize operation on your volume, you need to extend the volume's file-system size to take
* advantage of the new storage capacity. For information about extending a Linux file system, see <a href=
* "http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-expand-volume.html#recognize-expanded-volume-linux"
* >Extending a Linux File System</a>. For information about extending a Windows file system, see <a href=
* "http://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ebs-expand-volume.html#recognize-expanded-volume-windows"
* >Extending a Windows File System</a>.
* </p>
* <p>
* You can use CloudWatch Events to check the status of a modification to an EBS volume. For information about
* CloudWatch Events, see the <a href="http://docs.aws.amazon.com/AmazonCloudWatch/latest/events/">Amazon CloudWatch
* Events User Guide</a>. You can also track the status of a modification using the
* <a>DescribeVolumesModifications</a> API. For information about tracking status changes using either method, see
* <a href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-expand-volume.html#monitoring_mods">Monitoring
* Volume Modifications</a>.
* </p>
* <note>
* <p>
* With previous-generation instance types, resizing an EBS volume may require detaching and reattaching the volume
* or stopping and restarting the instance. For more information about modifying an EBS volume running Linux, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-expand-volume.html">Modifying the Size, IOPS, or
* Type of an EBS Volume on Linux</a>. For more information about modifying an EBS volume running Windows, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ebs-expand-volume.html">Modifying the Size, IOPS, or
* Type of an EBS Volume on Windows</a>.
* </p>
* </note> <note>
* <p>
* If you reach the maximum volume modification rate per volume limit, you will need to wait at least six hours
* before applying further modifications to the affected EBS volume.
* </p>
* </note>
*
* @param modifyVolumeRequest
* @return Result of the ModifyVolume operation returned by the service.
* @sample AmazonEC2.ModifyVolume
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyVolume" target="_top">AWS API
* Documentation</a>
*/
@Override
public ModifyVolumeResult modifyVolume(ModifyVolumeRequest request) {
request = beforeClientExecution(request);
return executeModifyVolume(request);
}
@SdkInternalApi
final ModifyVolumeResult executeModifyVolume(ModifyVolumeRequest modifyVolumeRequest) {
ExecutionContext executionContext = createExecutionContext(modifyVolumeRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<ModifyVolumeRequest> request = null;
Response<ModifyVolumeResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ModifyVolumeRequestMarshaller().marshall(super.beforeMarshalling(modifyVolumeRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<ModifyVolumeResult> responseHandler = new StaxResponseHandler<ModifyVolumeResult>(new ModifyVolumeResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Modifies a volume attribute.
* </p>
* <p>
* By default, all I/O operations for the volume are suspended when the data on the volume is determined to be
* potentially inconsistent, to prevent undetectable, latent data corruption. The I/O access to the volume can be
* resumed by first enabling I/O access and then checking the data consistency on your volume.
* </p>
* <p>
* You can change the default behavior to resume I/O operations. We recommend that you change this only for boot
* volumes or for volumes that are stateless or disposable.
* </p>
*
* @param modifyVolumeAttributeRequest
* Contains the parameters for ModifyVolumeAttribute.
* @return Result of the ModifyVolumeAttribute operation returned by the service.
* @sample AmazonEC2.ModifyVolumeAttribute
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyVolumeAttribute" target="_top">AWS API
* Documentation</a>
*/
@Override
public ModifyVolumeAttributeResult modifyVolumeAttribute(ModifyVolumeAttributeRequest request) {
request = beforeClientExecution(request);
return executeModifyVolumeAttribute(request);
}
@SdkInternalApi
final ModifyVolumeAttributeResult executeModifyVolumeAttribute(ModifyVolumeAttributeRequest modifyVolumeAttributeRequest) {
ExecutionContext executionContext = createExecutionContext(modifyVolumeAttributeRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<ModifyVolumeAttributeRequest> request = null;
Response<ModifyVolumeAttributeResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ModifyVolumeAttributeRequestMarshaller().marshall(super.beforeMarshalling(modifyVolumeAttributeRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<ModifyVolumeAttributeResult> responseHandler = new StaxResponseHandler<ModifyVolumeAttributeResult>(
new ModifyVolumeAttributeResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Modifies the specified attribute of the specified VPC.
* </p>
*
* @param modifyVpcAttributeRequest
* Contains the parameters for ModifyVpcAttribute.
* @return Result of the ModifyVpcAttribute operation returned by the service.
* @sample AmazonEC2.ModifyVpcAttribute
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyVpcAttribute" target="_top">AWS API
* Documentation</a>
*/
@Override
public ModifyVpcAttributeResult modifyVpcAttribute(ModifyVpcAttributeRequest request) {
request = beforeClientExecution(request);
return executeModifyVpcAttribute(request);
}
@SdkInternalApi
final ModifyVpcAttributeResult executeModifyVpcAttribute(ModifyVpcAttributeRequest modifyVpcAttributeRequest) {
ExecutionContext executionContext = createExecutionContext(modifyVpcAttributeRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<ModifyVpcAttributeRequest> request = null;
Response<ModifyVpcAttributeResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ModifyVpcAttributeRequestMarshaller().marshall(super.beforeMarshalling(modifyVpcAttributeRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<ModifyVpcAttributeResult> responseHandler = new StaxResponseHandler<ModifyVpcAttributeResult>(
new ModifyVpcAttributeResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Modifies attributes of a specified VPC endpoint. You can modify the policy associated with the endpoint, and you
* can add and remove route tables associated with the endpoint.
* </p>
*
* @param modifyVpcEndpointRequest
* Contains the parameters for ModifyVpcEndpoint.
* @return Result of the ModifyVpcEndpoint operation returned by the service.
* @sample AmazonEC2.ModifyVpcEndpoint
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyVpcEndpoint" target="_top">AWS API
* Documentation</a>
*/
@Override
public ModifyVpcEndpointResult modifyVpcEndpoint(ModifyVpcEndpointRequest request) {
request = beforeClientExecution(request);
return executeModifyVpcEndpoint(request);
}
@SdkInternalApi
final ModifyVpcEndpointResult executeModifyVpcEndpoint(ModifyVpcEndpointRequest modifyVpcEndpointRequest) {
ExecutionContext executionContext = createExecutionContext(modifyVpcEndpointRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<ModifyVpcEndpointRequest> request = null;
Response<ModifyVpcEndpointResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ModifyVpcEndpointRequestMarshaller().marshall(super.beforeMarshalling(modifyVpcEndpointRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<ModifyVpcEndpointResult> responseHandler = new StaxResponseHandler<ModifyVpcEndpointResult>(
new ModifyVpcEndpointResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Modifies the VPC peering connection options on one side of a VPC peering connection. You can do the following:
* </p>
* <ul>
* <li>
* <p>
* Enable/disable communication over the peering connection between an EC2-Classic instance that's linked to your
* VPC (using ClassicLink) and instances in the peer VPC.
* </p>
* </li>
* <li>
* <p>
* Enable/disable communication over the peering connection between instances in your VPC and an EC2-Classic
* instance that's linked to the peer VPC.
* </p>
* </li>
* <li>
* <p>
* Enable/disable a local VPC to resolve public DNS hostnames to private IP addresses when queried from instances in
* the peer VPC.
* </p>
* </li>
* </ul>
* <p>
* If the peered VPCs are in different accounts, each owner must initiate a separate request to modify the peering
* connection options, depending on whether their VPC was the requester or accepter for the VPC peering connection.
* If the peered VPCs are in the same account, you can modify the requester and accepter options in the same
* request. To confirm which VPC is the accepter and requester for a VPC peering connection, use the
* <a>DescribeVpcPeeringConnections</a> command.
* </p>
*
* @param modifyVpcPeeringConnectionOptionsRequest
* @return Result of the ModifyVpcPeeringConnectionOptions operation returned by the service.
* @sample AmazonEC2.ModifyVpcPeeringConnectionOptions
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyVpcPeeringConnectionOptions"
* target="_top">AWS API Documentation</a>
*/
@Override
public ModifyVpcPeeringConnectionOptionsResult modifyVpcPeeringConnectionOptions(ModifyVpcPeeringConnectionOptionsRequest request) {
request = beforeClientExecution(request);
return executeModifyVpcPeeringConnectionOptions(request);
}
@SdkInternalApi
final ModifyVpcPeeringConnectionOptionsResult executeModifyVpcPeeringConnectionOptions(
ModifyVpcPeeringConnectionOptionsRequest modifyVpcPeeringConnectionOptionsRequest) {
ExecutionContext executionContext = createExecutionContext(modifyVpcPeeringConnectionOptionsRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<ModifyVpcPeeringConnectionOptionsRequest> request = null;
Response<ModifyVpcPeeringConnectionOptionsResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ModifyVpcPeeringConnectionOptionsRequestMarshaller().marshall(super.beforeMarshalling(modifyVpcPeeringConnectionOptionsRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<ModifyVpcPeeringConnectionOptionsResult> responseHandler = new StaxResponseHandler<ModifyVpcPeeringConnectionOptionsResult>(
new ModifyVpcPeeringConnectionOptionsResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Enables detailed monitoring for a running instance. Otherwise, basic monitoring is enabled. For more information,
* see <a href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-cloudwatch.html">Monitoring Your Instances
* and Volumes</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.
* </p>
* <p>
* To disable detailed monitoring, see .
* </p>
*
* @param monitorInstancesRequest
* Contains the parameters for MonitorInstances.
* @return Result of the MonitorInstances operation returned by the service.
* @sample AmazonEC2.MonitorInstances
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/MonitorInstances" target="_top">AWS API
* Documentation</a>
*/
@Override
public MonitorInstancesResult monitorInstances(MonitorInstancesRequest request) {
request = beforeClientExecution(request);
return executeMonitorInstances(request);
}
@SdkInternalApi
final MonitorInstancesResult executeMonitorInstances(MonitorInstancesRequest monitorInstancesRequest) {
ExecutionContext executionContext = createExecutionContext(monitorInstancesRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<MonitorInstancesRequest> request = null;
Response<MonitorInstancesResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new MonitorInstancesRequestMarshaller().marshall(super.beforeMarshalling(monitorInstancesRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<MonitorInstancesResult> responseHandler = new StaxResponseHandler<MonitorInstancesResult>(
new MonitorInstancesResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Moves an Elastic IP address from the EC2-Classic platform to the EC2-VPC platform. The Elastic IP address must be
* allocated to your account for more than 24 hours, and it must not be associated with an instance. After the
* Elastic IP address is moved, it is no longer available for use in the EC2-Classic platform, unless you move it
* back using the <a>RestoreAddressToClassic</a> request. You cannot move an Elastic IP address that was originally
* allocated for use in the EC2-VPC platform to the EC2-Classic platform.
* </p>
*
* @param moveAddressToVpcRequest
* Contains the parameters for MoveAddressToVpc.
* @return Result of the MoveAddressToVpc operation returned by the service.
* @sample AmazonEC2.MoveAddressToVpc
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/MoveAddressToVpc" target="_top">AWS API
* Documentation</a>
*/
@Override
public MoveAddressToVpcResult moveAddressToVpc(MoveAddressToVpcRequest request) {
request = beforeClientExecution(request);
return executeMoveAddressToVpc(request);
}
@SdkInternalApi
final MoveAddressToVpcResult executeMoveAddressToVpc(MoveAddressToVpcRequest moveAddressToVpcRequest) {
ExecutionContext executionContext = createExecutionContext(moveAddressToVpcRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<MoveAddressToVpcRequest> request = null;
Response<MoveAddressToVpcResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new MoveAddressToVpcRequestMarshaller().marshall(super.beforeMarshalling(moveAddressToVpcRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<MoveAddressToVpcResult> responseHandler = new StaxResponseHandler<MoveAddressToVpcResult>(
new MoveAddressToVpcResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Purchase a reservation with configurations that match those of your Dedicated Host. You must have active
* Dedicated Hosts in your account before you purchase a reservation. This action results in the specified
* reservation being purchased and charged to your account.
* </p>
*
* @param purchaseHostReservationRequest
* @return Result of the PurchaseHostReservation operation returned by the service.
* @sample AmazonEC2.PurchaseHostReservation
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/PurchaseHostReservation" target="_top">AWS
* API Documentation</a>
*/
@Override
public PurchaseHostReservationResult purchaseHostReservation(PurchaseHostReservationRequest request) {
request = beforeClientExecution(request);
return executePurchaseHostReservation(request);
}
@SdkInternalApi
final PurchaseHostReservationResult executePurchaseHostReservation(PurchaseHostReservationRequest purchaseHostReservationRequest) {
ExecutionContext executionContext = createExecutionContext(purchaseHostReservationRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<PurchaseHostReservationRequest> request = null;
Response<PurchaseHostReservationResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new PurchaseHostReservationRequestMarshaller().marshall(super.beforeMarshalling(purchaseHostReservationRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<PurchaseHostReservationResult> responseHandler = new StaxResponseHandler<PurchaseHostReservationResult>(
new PurchaseHostReservationResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Purchases a Reserved Instance for use with your account. With Reserved Instances, you pay a lower hourly rate
* compared to On-Demand instance pricing.
* </p>
* <p>
* Use <a>DescribeReservedInstancesOfferings</a> to get a list of Reserved Instance offerings that match your
* specifications. After you've purchased a Reserved Instance, you can check for your new Reserved Instance with
* <a>DescribeReservedInstances</a>.
* </p>
* <p>
* For more information, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts-on-demand-reserved-instances.html">Reserved
* Instances</a> and <a href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-market-general.html">Reserved
* Instance Marketplace</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.
* </p>
*
* @param purchaseReservedInstancesOfferingRequest
* Contains the parameters for PurchaseReservedInstancesOffering.
* @return Result of the PurchaseReservedInstancesOffering operation returned by the service.
* @sample AmazonEC2.PurchaseReservedInstancesOffering
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/PurchaseReservedInstancesOffering"
* target="_top">AWS API Documentation</a>
*/
@Override
public PurchaseReservedInstancesOfferingResult purchaseReservedInstancesOffering(PurchaseReservedInstancesOfferingRequest request) {
request = beforeClientExecution(request);
return executePurchaseReservedInstancesOffering(request);
}
@SdkInternalApi
final PurchaseReservedInstancesOfferingResult executePurchaseReservedInstancesOffering(
PurchaseReservedInstancesOfferingRequest purchaseReservedInstancesOfferingRequest) {
ExecutionContext executionContext = createExecutionContext(purchaseReservedInstancesOfferingRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<PurchaseReservedInstancesOfferingRequest> request = null;
Response<PurchaseReservedInstancesOfferingResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new PurchaseReservedInstancesOfferingRequestMarshaller().marshall(super.beforeMarshalling(purchaseReservedInstancesOfferingRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<PurchaseReservedInstancesOfferingResult> responseHandler = new StaxResponseHandler<PurchaseReservedInstancesOfferingResult>(
new PurchaseReservedInstancesOfferingResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Purchases one or more Scheduled Instances with the specified schedule.
* </p>
* <p>
* Scheduled Instances enable you to purchase Amazon EC2 compute capacity by the hour for a one-year term. Before
* you can purchase a Scheduled Instance, you must call <a>DescribeScheduledInstanceAvailability</a> to check for
* available schedules and obtain a purchase token. After you purchase a Scheduled Instance, you must call
* <a>RunScheduledInstances</a> during each scheduled time period.
* </p>
* <p>
* After you purchase a Scheduled Instance, you can't cancel, modify, or resell your purchase.
* </p>
*
* @param purchaseScheduledInstancesRequest
* Contains the parameters for PurchaseScheduledInstances.
* @return Result of the PurchaseScheduledInstances operation returned by the service.
* @sample AmazonEC2.PurchaseScheduledInstances
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/PurchaseScheduledInstances" target="_top">AWS
* API Documentation</a>
*/
@Override
public PurchaseScheduledInstancesResult purchaseScheduledInstances(PurchaseScheduledInstancesRequest request) {
request = beforeClientExecution(request);
return executePurchaseScheduledInstances(request);
}
@SdkInternalApi
final PurchaseScheduledInstancesResult executePurchaseScheduledInstances(PurchaseScheduledInstancesRequest purchaseScheduledInstancesRequest) {
ExecutionContext executionContext = createExecutionContext(purchaseScheduledInstancesRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<PurchaseScheduledInstancesRequest> request = null;
Response<PurchaseScheduledInstancesResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new PurchaseScheduledInstancesRequestMarshaller().marshall(super.beforeMarshalling(purchaseScheduledInstancesRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<PurchaseScheduledInstancesResult> responseHandler = new StaxResponseHandler<PurchaseScheduledInstancesResult>(
new PurchaseScheduledInstancesResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Requests a reboot of one or more instances. This operation is asynchronous; it only queues a request to reboot
* the specified instances. The operation succeeds if the instances are valid and belong to you. Requests to reboot
* terminated instances are ignored.
* </p>
* <p>
* If an instance does not cleanly shut down within four minutes, Amazon EC2 performs a hard reboot.
* </p>
* <p>
* For more information about troubleshooting, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-console.html">Getting Console Output and
* Rebooting Instances</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.
* </p>
*
* @param rebootInstancesRequest
* Contains the parameters for RebootInstances.
* @return Result of the RebootInstances operation returned by the service.
* @sample AmazonEC2.RebootInstances
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RebootInstances" target="_top">AWS API
* Documentation</a>
*/
@Override
public RebootInstancesResult rebootInstances(RebootInstancesRequest request) {
request = beforeClientExecution(request);
return executeRebootInstances(request);
}
@SdkInternalApi
final RebootInstancesResult executeRebootInstances(RebootInstancesRequest rebootInstancesRequest) {
ExecutionContext executionContext = createExecutionContext(rebootInstancesRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<RebootInstancesRequest> request = null;
Response<RebootInstancesResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new RebootInstancesRequestMarshaller().marshall(super.beforeMarshalling(rebootInstancesRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<RebootInstancesResult> responseHandler = new StaxResponseHandler<RebootInstancesResult>(
new RebootInstancesResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Registers an AMI. When you're creating an AMI, this is the final step you must complete before you can launch an
* instance from the AMI. For more information about creating AMIs, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami.html">Creating Your Own AMIs</a> in the
* <i>Amazon Elastic Compute Cloud User Guide</i>.
* </p>
* <note>
* <p>
* For Amazon EBS-backed instances, <a>CreateImage</a> creates and registers the AMI in a single request, so you
* don't have to register the AMI yourself.
* </p>
* </note>
* <p>
* You can also use <code>RegisterImage</code> to create an Amazon EBS-backed Linux AMI from a snapshot of a root
* device volume. You specify the snapshot using the block device mapping. For more information, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-launch-snapshot.html">Launching a Linux
* Instance from a Backup</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.
* </p>
* <p>
* You can't register an image where a secondary (non-root) snapshot has AWS Marketplace product codes.
* </p>
* <p>
* Some Linux distributions, such as Red Hat Enterprise Linux (RHEL) and SUSE Linux Enterprise Server (SLES), use
* the EC2 billing product code associated with an AMI to verify the subscription status for package updates.
* Creating an AMI from an EBS snapshot does not maintain this billing code, and subsequent instances launched from
* such an AMI will not be able to connect to package update infrastructure. To create an AMI that must retain
* billing codes, see <a>CreateImage</a>.
* </p>
* <p>
* If needed, you can deregister an AMI at any time. Any modifications you make to an AMI backed by an instance
* store volume invalidates its registration. If you make changes to an image, deregister the previous image and
* register the new image.
* </p>
*
* @param registerImageRequest
* Contains the parameters for RegisterImage.
* @return Result of the RegisterImage operation returned by the service.
* @sample AmazonEC2.RegisterImage
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RegisterImage" target="_top">AWS API
* Documentation</a>
*/
@Override
public RegisterImageResult registerImage(RegisterImageRequest request) {
request = beforeClientExecution(request);
return executeRegisterImage(request);
}
@SdkInternalApi
final RegisterImageResult executeRegisterImage(RegisterImageRequest registerImageRequest) {
ExecutionContext executionContext = createExecutionContext(registerImageRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<RegisterImageRequest> request = null;
Response<RegisterImageResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new RegisterImageRequestMarshaller().marshall(super.beforeMarshalling(registerImageRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<RegisterImageResult> responseHandler = new StaxResponseHandler<RegisterImageResult>(new RegisterImageResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Rejects a VPC peering connection request. The VPC peering connection must be in the
* <code>pending-acceptance</code> state. Use the <a>DescribeVpcPeeringConnections</a> request to view your
* outstanding VPC peering connection requests. To delete an active VPC peering connection, or to delete a VPC
* peering connection request that you initiated, use <a>DeleteVpcPeeringConnection</a>.
* </p>
*
* @param rejectVpcPeeringConnectionRequest
* Contains the parameters for RejectVpcPeeringConnection.
* @return Result of the RejectVpcPeeringConnection operation returned by the service.
* @sample AmazonEC2.RejectVpcPeeringConnection
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RejectVpcPeeringConnection" target="_top">AWS
* API Documentation</a>
*/
@Override
public RejectVpcPeeringConnectionResult rejectVpcPeeringConnection(RejectVpcPeeringConnectionRequest request) {
request = beforeClientExecution(request);
return executeRejectVpcPeeringConnection(request);
}
@SdkInternalApi
final RejectVpcPeeringConnectionResult executeRejectVpcPeeringConnection(RejectVpcPeeringConnectionRequest rejectVpcPeeringConnectionRequest) {
ExecutionContext executionContext = createExecutionContext(rejectVpcPeeringConnectionRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<RejectVpcPeeringConnectionRequest> request = null;
Response<RejectVpcPeeringConnectionResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new RejectVpcPeeringConnectionRequestMarshaller().marshall(super.beforeMarshalling(rejectVpcPeeringConnectionRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<RejectVpcPeeringConnectionResult> responseHandler = new StaxResponseHandler<RejectVpcPeeringConnectionResult>(
new RejectVpcPeeringConnectionResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Releases the specified Elastic IP address.
* </p>
* <p>
* 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 <code>AuthFailure</code> error if the
* address is already allocated to another AWS account.
* </p>
* <p>
* [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 <a>DisassociateAddress</a>.
* </p>
* <p>
* [Nondefault VPC] You must use <a>DisassociateAddress</a> to disassociate the Elastic IP address before you try to
* release it. Otherwise, Amazon EC2 returns an error (<code>InvalidIPAddress.InUse</code>).
* </p>
*
* @param releaseAddressRequest
* Contains the parameters for ReleaseAddress.
* @return Result of the ReleaseAddress operation returned by the service.
* @sample AmazonEC2.ReleaseAddress
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ReleaseAddress" target="_top">AWS API
* Documentation</a>
*/
@Override
public ReleaseAddressResult releaseAddress(ReleaseAddressRequest request) {
request = beforeClientExecution(request);
return executeReleaseAddress(request);
}
@SdkInternalApi
final ReleaseAddressResult executeReleaseAddress(ReleaseAddressRequest releaseAddressRequest) {
ExecutionContext executionContext = createExecutionContext(releaseAddressRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<ReleaseAddressRequest> request = null;
Response<ReleaseAddressResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ReleaseAddressRequestMarshaller().marshall(super.beforeMarshalling(releaseAddressRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<ReleaseAddressResult> responseHandler = new StaxResponseHandler<ReleaseAddressResult>(
new ReleaseAddressResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* When you no longer want to use an On-Demand Dedicated Host it can be released. On-Demand billing is stopped and
* the host goes into <code>released</code> state. The host ID of Dedicated Hosts that have been released can no
* longer be specified in another request, e.g., ModifyHosts. You must stop or terminate all instances on a host
* before it can be released.
* </p>
* <p>
* When Dedicated Hosts are released, it make take some time for them to stop counting toward your limit and you may
* receive capacity errors when trying to allocate new Dedicated hosts. Try waiting a few minutes, and then try
* again.
* </p>
* <p>
* Released hosts will still appear in a <a>DescribeHosts</a> response.
* </p>
*
* @param releaseHostsRequest
* Contains the parameters for ReleaseHosts.
* @return Result of the ReleaseHosts operation returned by the service.
* @sample AmazonEC2.ReleaseHosts
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ReleaseHosts" target="_top">AWS API
* Documentation</a>
*/
@Override
public ReleaseHostsResult releaseHosts(ReleaseHostsRequest request) {
request = beforeClientExecution(request);
return executeReleaseHosts(request);
}
@SdkInternalApi
final ReleaseHostsResult executeReleaseHosts(ReleaseHostsRequest releaseHostsRequest) {
ExecutionContext executionContext = createExecutionContext(releaseHostsRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<ReleaseHostsRequest> request = null;
Response<ReleaseHostsResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ReleaseHostsRequestMarshaller().marshall(super.beforeMarshalling(releaseHostsRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<ReleaseHostsResult> responseHandler = new StaxResponseHandler<ReleaseHostsResult>(new ReleaseHostsResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Replaces an IAM instance profile for the specified running instance. You can use this action to change the IAM
* instance profile that's associated with an instance without having to disassociate the existing IAM instance
* profile first.
* </p>
* <p>
* Use <a>DescribeIamInstanceProfileAssociations</a> to get the association ID.
* </p>
*
* @param replaceIamInstanceProfileAssociationRequest
* @return Result of the ReplaceIamInstanceProfileAssociation operation returned by the service.
* @sample AmazonEC2.ReplaceIamInstanceProfileAssociation
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ReplaceIamInstanceProfileAssociation"
* target="_top">AWS API Documentation</a>
*/
@Override
public ReplaceIamInstanceProfileAssociationResult replaceIamInstanceProfileAssociation(ReplaceIamInstanceProfileAssociationRequest request) {
request = beforeClientExecution(request);
return executeReplaceIamInstanceProfileAssociation(request);
}
@SdkInternalApi
final ReplaceIamInstanceProfileAssociationResult executeReplaceIamInstanceProfileAssociation(
ReplaceIamInstanceProfileAssociationRequest replaceIamInstanceProfileAssociationRequest) {
ExecutionContext executionContext = createExecutionContext(replaceIamInstanceProfileAssociationRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<ReplaceIamInstanceProfileAssociationRequest> request = null;
Response<ReplaceIamInstanceProfileAssociationResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ReplaceIamInstanceProfileAssociationRequestMarshaller().marshall(super
.beforeMarshalling(replaceIamInstanceProfileAssociationRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<ReplaceIamInstanceProfileAssociationResult> responseHandler = new StaxResponseHandler<ReplaceIamInstanceProfileAssociationResult>(
new ReplaceIamInstanceProfileAssociationResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Changes which network ACL a subnet is associated with. By default when you create a subnet, it's automatically
* associated with the default network ACL. For more information about network ACLs, see <a
* href="http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_ACLs.html">Network ACLs</a> in the <i>Amazon
* Virtual Private Cloud User Guide</i>.
* </p>
*
* @param replaceNetworkAclAssociationRequest
* Contains the parameters for ReplaceNetworkAclAssociation.
* @return Result of the ReplaceNetworkAclAssociation operation returned by the service.
* @sample AmazonEC2.ReplaceNetworkAclAssociation
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ReplaceNetworkAclAssociation"
* target="_top">AWS API Documentation</a>
*/
@Override
public ReplaceNetworkAclAssociationResult replaceNetworkAclAssociation(ReplaceNetworkAclAssociationRequest request) {
request = beforeClientExecution(request);
return executeReplaceNetworkAclAssociation(request);
}
@SdkInternalApi
final ReplaceNetworkAclAssociationResult executeReplaceNetworkAclAssociation(ReplaceNetworkAclAssociationRequest replaceNetworkAclAssociationRequest) {
ExecutionContext executionContext = createExecutionContext(replaceNetworkAclAssociationRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<ReplaceNetworkAclAssociationRequest> request = null;
Response<ReplaceNetworkAclAssociationResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ReplaceNetworkAclAssociationRequestMarshaller().marshall(super.beforeMarshalling(replaceNetworkAclAssociationRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<ReplaceNetworkAclAssociationResult> responseHandler = new StaxResponseHandler<ReplaceNetworkAclAssociationResult>(
new ReplaceNetworkAclAssociationResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Replaces an entry (rule) in a network ACL. For more information about network ACLs, see <a
* href="http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_ACLs.html">Network ACLs</a> in the <i>Amazon
* Virtual Private Cloud User Guide</i>.
* </p>
*
* @param replaceNetworkAclEntryRequest
* Contains the parameters for ReplaceNetworkAclEntry.
* @return Result of the ReplaceNetworkAclEntry operation returned by the service.
* @sample AmazonEC2.ReplaceNetworkAclEntry
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ReplaceNetworkAclEntry" target="_top">AWS API
* Documentation</a>
*/
@Override
public ReplaceNetworkAclEntryResult replaceNetworkAclEntry(ReplaceNetworkAclEntryRequest request) {
request = beforeClientExecution(request);
return executeReplaceNetworkAclEntry(request);
}
@SdkInternalApi
final ReplaceNetworkAclEntryResult executeReplaceNetworkAclEntry(ReplaceNetworkAclEntryRequest replaceNetworkAclEntryRequest) {
ExecutionContext executionContext = createExecutionContext(replaceNetworkAclEntryRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<ReplaceNetworkAclEntryRequest> request = null;
Response<ReplaceNetworkAclEntryResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ReplaceNetworkAclEntryRequestMarshaller().marshall(super.beforeMarshalling(replaceNetworkAclEntryRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<ReplaceNetworkAclEntryResult> responseHandler = new StaxResponseHandler<ReplaceNetworkAclEntryResult>(
new ReplaceNetworkAclEntryResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Replaces an existing route within a route table in a VPC. You must provide only one of the following: Internet
* gateway or virtual private gateway, NAT instance, NAT gateway, VPC peering connection, network interface, or
* egress-only Internet gateway.
* </p>
* <p>
* For more information about route tables, see <a
* href="http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Route_Tables.html">Route Tables</a> in the
* <i>Amazon Virtual Private Cloud User Guide</i>.
* </p>
*
* @param replaceRouteRequest
* Contains the parameters for ReplaceRoute.
* @return Result of the ReplaceRoute operation returned by the service.
* @sample AmazonEC2.ReplaceRoute
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ReplaceRoute" target="_top">AWS API
* Documentation</a>
*/
@Override
public ReplaceRouteResult replaceRoute(ReplaceRouteRequest request) {
request = beforeClientExecution(request);
return executeReplaceRoute(request);
}
@SdkInternalApi
final ReplaceRouteResult executeReplaceRoute(ReplaceRouteRequest replaceRouteRequest) {
ExecutionContext executionContext = createExecutionContext(replaceRouteRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<ReplaceRouteRequest> request = null;
Response<ReplaceRouteResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ReplaceRouteRequestMarshaller().marshall(super.beforeMarshalling(replaceRouteRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<ReplaceRouteResult> responseHandler = new StaxResponseHandler<ReplaceRouteResult>(new ReplaceRouteResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Changes the route table associated with a given subnet in a VPC. After the operation completes, the subnet uses
* the routes in the new route table it's associated with. For more information about route tables, see <a
* href="http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Route_Tables.html">Route Tables</a> in the
* <i>Amazon Virtual Private Cloud User Guide</i>.
* </p>
* <p>
* You can also use ReplaceRouteTableAssociation to change which table is the main route table in the VPC. You just
* specify the main route table's association ID and the route table to be the new main route table.
* </p>
*
* @param replaceRouteTableAssociationRequest
* Contains the parameters for ReplaceRouteTableAssociation.
* @return Result of the ReplaceRouteTableAssociation operation returned by the service.
* @sample AmazonEC2.ReplaceRouteTableAssociation
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ReplaceRouteTableAssociation"
* target="_top">AWS API Documentation</a>
*/
@Override
public ReplaceRouteTableAssociationResult replaceRouteTableAssociation(ReplaceRouteTableAssociationRequest request) {
request = beforeClientExecution(request);
return executeReplaceRouteTableAssociation(request);
}
@SdkInternalApi
final ReplaceRouteTableAssociationResult executeReplaceRouteTableAssociation(ReplaceRouteTableAssociationRequest replaceRouteTableAssociationRequest) {
ExecutionContext executionContext = createExecutionContext(replaceRouteTableAssociationRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<ReplaceRouteTableAssociationRequest> request = null;
Response<ReplaceRouteTableAssociationResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ReplaceRouteTableAssociationRequestMarshaller().marshall(super.beforeMarshalling(replaceRouteTableAssociationRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<ReplaceRouteTableAssociationResult> responseHandler = new StaxResponseHandler<ReplaceRouteTableAssociationResult>(
new ReplaceRouteTableAssociationResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Submits feedback about the status of an instance. The instance must be in the <code>running</code> state. If your
* experience with the instance differs from the instance status returned by <a>DescribeInstanceStatus</a>, use
* <a>ReportInstanceStatus</a> to report your experience with the instance. Amazon EC2 collects this information to
* improve the accuracy of status checks.
* </p>
* <p>
* Use of this action does not change the value returned by <a>DescribeInstanceStatus</a>.
* </p>
*
* @param reportInstanceStatusRequest
* Contains the parameters for ReportInstanceStatus.
* @return Result of the ReportInstanceStatus operation returned by the service.
* @sample AmazonEC2.ReportInstanceStatus
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ReportInstanceStatus" target="_top">AWS API
* Documentation</a>
*/
@Override
public ReportInstanceStatusResult reportInstanceStatus(ReportInstanceStatusRequest request) {
request = beforeClientExecution(request);
return executeReportInstanceStatus(request);
}
@SdkInternalApi
final ReportInstanceStatusResult executeReportInstanceStatus(ReportInstanceStatusRequest reportInstanceStatusRequest) {
ExecutionContext executionContext = createExecutionContext(reportInstanceStatusRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<ReportInstanceStatusRequest> request = null;
Response<ReportInstanceStatusResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ReportInstanceStatusRequestMarshaller().marshall(super.beforeMarshalling(reportInstanceStatusRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<ReportInstanceStatusResult> responseHandler = new StaxResponseHandler<ReportInstanceStatusResult>(
new ReportInstanceStatusResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Creates a Spot fleet request.
* </p>
* <p>
* You can submit a single request that includes multiple launch specifications that vary by instance type, AMI,
* Availability Zone, or subnet.
* </p>
* <p>
* By default, the Spot fleet requests Spot instances in the Spot pool where the price per unit is the lowest. Each
* launch specification can include its own instance weighting that reflects the value of the instance type to your
* application workload.
* </p>
* <p>
* Alternatively, you can specify that the Spot fleet distribute the target capacity across the Spot pools included
* in its launch specifications. By ensuring that the Spot instances in your Spot fleet are in different Spot pools,
* you can improve the availability of your fleet.
* </p>
* <p>
* For more information, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-requests.html">Spot Fleet Requests</a> in the
* <i>Amazon Elastic Compute Cloud User Guide</i>.
* </p>
*
* @param requestSpotFleetRequest
* Contains the parameters for RequestSpotFleet.
* @return Result of the RequestSpotFleet operation returned by the service.
* @sample AmazonEC2.RequestSpotFleet
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RequestSpotFleet" target="_top">AWS API
* Documentation</a>
*/
@Override
public RequestSpotFleetResult requestSpotFleet(RequestSpotFleetRequest request) {
request = beforeClientExecution(request);
return executeRequestSpotFleet(request);
}
@SdkInternalApi
final RequestSpotFleetResult executeRequestSpotFleet(RequestSpotFleetRequest requestSpotFleetRequest) {
ExecutionContext executionContext = createExecutionContext(requestSpotFleetRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<RequestSpotFleetRequest> request = null;
Response<RequestSpotFleetResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new RequestSpotFleetRequestMarshaller().marshall(super.beforeMarshalling(requestSpotFleetRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<RequestSpotFleetResult> responseHandler = new StaxResponseHandler<RequestSpotFleetResult>(
new RequestSpotFleetResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Creates a Spot instance request. Spot instances are instances that Amazon EC2 launches when the bid price that
* you specify exceeds the current Spot price. Amazon EC2 periodically sets the Spot price based on available Spot
* Instance capacity and current Spot instance requests. For more information, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-requests.html">Spot Instance Requests</a> in the
* <i>Amazon Elastic Compute Cloud User Guide</i>.
* </p>
*
* @param requestSpotInstancesRequest
* Contains the parameters for RequestSpotInstances.
* @return Result of the RequestSpotInstances operation returned by the service.
* @sample AmazonEC2.RequestSpotInstances
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RequestSpotInstances" target="_top">AWS API
* Documentation</a>
*/
@Override
public RequestSpotInstancesResult requestSpotInstances(RequestSpotInstancesRequest request) {
request = beforeClientExecution(request);
return executeRequestSpotInstances(request);
}
@SdkInternalApi
final RequestSpotInstancesResult executeRequestSpotInstances(RequestSpotInstancesRequest requestSpotInstancesRequest) {
ExecutionContext executionContext = createExecutionContext(requestSpotInstancesRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<RequestSpotInstancesRequest> request = null;
Response<RequestSpotInstancesResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new RequestSpotInstancesRequestMarshaller().marshall(super.beforeMarshalling(requestSpotInstancesRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<RequestSpotInstancesResult> responseHandler = new StaxResponseHandler<RequestSpotInstancesResult>(
new RequestSpotInstancesResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Resets an attribute of an AMI to its default value.
* </p>
* <note>
* <p>
* The productCodes attribute can't be reset.
* </p>
* </note>
*
* @param resetImageAttributeRequest
* Contains the parameters for ResetImageAttribute.
* @return Result of the ResetImageAttribute operation returned by the service.
* @sample AmazonEC2.ResetImageAttribute
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ResetImageAttribute" target="_top">AWS API
* Documentation</a>
*/
@Override
public ResetImageAttributeResult resetImageAttribute(ResetImageAttributeRequest request) {
request = beforeClientExecution(request);
return executeResetImageAttribute(request);
}
@SdkInternalApi
final ResetImageAttributeResult executeResetImageAttribute(ResetImageAttributeRequest resetImageAttributeRequest) {
ExecutionContext executionContext = createExecutionContext(resetImageAttributeRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<ResetImageAttributeRequest> request = null;
Response<ResetImageAttributeResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ResetImageAttributeRequestMarshaller().marshall(super.beforeMarshalling(resetImageAttributeRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<ResetImageAttributeResult> responseHandler = new StaxResponseHandler<ResetImageAttributeResult>(
new ResetImageAttributeResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Resets an attribute of an instance to its default value. To reset the <code>kernel</code> or <code>ramdisk</code>
* , the instance must be in a stopped state. To reset the <code>sourceDestCheck</code>, the instance can be either
* running or stopped.
* </p>
* <p>
* The <code>sourceDestCheck</code> attribute controls whether source/destination checking is enabled. The default
* value is <code>true</code>, which means checking is enabled. This value must be <code>false</code> for a NAT
* instance to perform NAT. For more information, see <a
* href="http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_NAT_Instance.html">NAT Instances</a> in the
* <i>Amazon Virtual Private Cloud User Guide</i>.
* </p>
*
* @param resetInstanceAttributeRequest
* Contains the parameters for ResetInstanceAttribute.
* @return Result of the ResetInstanceAttribute operation returned by the service.
* @sample AmazonEC2.ResetInstanceAttribute
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ResetInstanceAttribute" target="_top">AWS API
* Documentation</a>
*/
@Override
public ResetInstanceAttributeResult resetInstanceAttribute(ResetInstanceAttributeRequest request) {
request = beforeClientExecution(request);
return executeResetInstanceAttribute(request);
}
@SdkInternalApi
final ResetInstanceAttributeResult executeResetInstanceAttribute(ResetInstanceAttributeRequest resetInstanceAttributeRequest) {
ExecutionContext executionContext = createExecutionContext(resetInstanceAttributeRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<ResetInstanceAttributeRequest> request = null;
Response<ResetInstanceAttributeResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ResetInstanceAttributeRequestMarshaller().marshall(super.beforeMarshalling(resetInstanceAttributeRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<ResetInstanceAttributeResult> responseHandler = new StaxResponseHandler<ResetInstanceAttributeResult>(
new ResetInstanceAttributeResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Resets a network interface attribute. You can specify only one attribute at a time.
* </p>
*
* @param resetNetworkInterfaceAttributeRequest
* Contains the parameters for ResetNetworkInterfaceAttribute.
* @return Result of the ResetNetworkInterfaceAttribute operation returned by the service.
* @sample AmazonEC2.ResetNetworkInterfaceAttribute
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ResetNetworkInterfaceAttribute"
* target="_top">AWS API Documentation</a>
*/
@Override
public ResetNetworkInterfaceAttributeResult resetNetworkInterfaceAttribute(ResetNetworkInterfaceAttributeRequest request) {
request = beforeClientExecution(request);
return executeResetNetworkInterfaceAttribute(request);
}
@SdkInternalApi
final ResetNetworkInterfaceAttributeResult executeResetNetworkInterfaceAttribute(ResetNetworkInterfaceAttributeRequest resetNetworkInterfaceAttributeRequest) {
ExecutionContext executionContext = createExecutionContext(resetNetworkInterfaceAttributeRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<ResetNetworkInterfaceAttributeRequest> request = null;
Response<ResetNetworkInterfaceAttributeResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ResetNetworkInterfaceAttributeRequestMarshaller().marshall(super.beforeMarshalling(resetNetworkInterfaceAttributeRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<ResetNetworkInterfaceAttributeResult> responseHandler = new StaxResponseHandler<ResetNetworkInterfaceAttributeResult>(
new ResetNetworkInterfaceAttributeResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Resets permission settings for the specified snapshot.
* </p>
* <p>
* For more information on modifying snapshot permissions, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-modifying-snapshot-permissions.html">Sharing
* Snapshots</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.
* </p>
*
* @param resetSnapshotAttributeRequest
* Contains the parameters for ResetSnapshotAttribute.
* @return Result of the ResetSnapshotAttribute operation returned by the service.
* @sample AmazonEC2.ResetSnapshotAttribute
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ResetSnapshotAttribute" target="_top">AWS API
* Documentation</a>
*/
@Override
public ResetSnapshotAttributeResult resetSnapshotAttribute(ResetSnapshotAttributeRequest request) {
request = beforeClientExecution(request);
return executeResetSnapshotAttribute(request);
}
@SdkInternalApi
final ResetSnapshotAttributeResult executeResetSnapshotAttribute(ResetSnapshotAttributeRequest resetSnapshotAttributeRequest) {
ExecutionContext executionContext = createExecutionContext(resetSnapshotAttributeRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<ResetSnapshotAttributeRequest> request = null;
Response<ResetSnapshotAttributeResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new ResetSnapshotAttributeRequestMarshaller().marshall(super.beforeMarshalling(resetSnapshotAttributeRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<ResetSnapshotAttributeResult> responseHandler = new StaxResponseHandler<ResetSnapshotAttributeResult>(
new ResetSnapshotAttributeResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Restores an Elastic IP address that was previously moved to the EC2-VPC platform back to the EC2-Classic
* platform. You cannot move an Elastic IP address that was originally allocated for use in EC2-VPC. The Elastic IP
* address must not be associated with an instance or network interface.
* </p>
*
* @param restoreAddressToClassicRequest
* Contains the parameters for RestoreAddressToClassic.
* @return Result of the RestoreAddressToClassic operation returned by the service.
* @sample AmazonEC2.RestoreAddressToClassic
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RestoreAddressToClassic" target="_top">AWS
* API Documentation</a>
*/
@Override
public RestoreAddressToClassicResult restoreAddressToClassic(RestoreAddressToClassicRequest request) {
request = beforeClientExecution(request);
return executeRestoreAddressToClassic(request);
}
@SdkInternalApi
final RestoreAddressToClassicResult executeRestoreAddressToClassic(RestoreAddressToClassicRequest restoreAddressToClassicRequest) {
ExecutionContext executionContext = createExecutionContext(restoreAddressToClassicRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<RestoreAddressToClassicRequest> request = null;
Response<RestoreAddressToClassicResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new RestoreAddressToClassicRequestMarshaller().marshall(super.beforeMarshalling(restoreAddressToClassicRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<RestoreAddressToClassicResult> responseHandler = new StaxResponseHandler<RestoreAddressToClassicResult>(
new RestoreAddressToClassicResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* [EC2-VPC only] Removes one or more egress rules from a security group for EC2-VPC. This action doesn't apply to
* security groups for use in EC2-Classic. The values that you specify in the revoke request (for example, ports)
* must match the existing rule's values for the rule to be revoked.
* </p>
* <p>
* Each rule consists of the protocol and the IPv4 or IPv6 CIDR range or source security group. For the TCP and UDP
* protocols, you must also specify the destination port or range of ports. For the ICMP protocol, you must also
* specify the ICMP type and code.
* </p>
* <p>
* Rule changes are propagated to instances within the security group as quickly as possible. However, a small delay
* might occur.
* </p>
*
* @param revokeSecurityGroupEgressRequest
* Contains the parameters for RevokeSecurityGroupEgress.
* @return Result of the RevokeSecurityGroupEgress operation returned by the service.
* @sample AmazonEC2.RevokeSecurityGroupEgress
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RevokeSecurityGroupEgress" target="_top">AWS
* API Documentation</a>
*/
@Override
public RevokeSecurityGroupEgressResult revokeSecurityGroupEgress(RevokeSecurityGroupEgressRequest request) {
request = beforeClientExecution(request);
return executeRevokeSecurityGroupEgress(request);
}
@SdkInternalApi
final RevokeSecurityGroupEgressResult executeRevokeSecurityGroupEgress(RevokeSecurityGroupEgressRequest revokeSecurityGroupEgressRequest) {
ExecutionContext executionContext = createExecutionContext(revokeSecurityGroupEgressRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<RevokeSecurityGroupEgressRequest> request = null;
Response<RevokeSecurityGroupEgressResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new RevokeSecurityGroupEgressRequestMarshaller().marshall(super.beforeMarshalling(revokeSecurityGroupEgressRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<RevokeSecurityGroupEgressResult> responseHandler = new StaxResponseHandler<RevokeSecurityGroupEgressResult>(
new RevokeSecurityGroupEgressResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Removes one or more ingress rules from a security group. The values that you specify in the revoke request (for
* example, ports) must match the existing rule's values for the rule to be removed.
* </p>
* <p>
* Each rule consists of the protocol and the CIDR range or source security group. For the TCP and UDP protocols,
* you must also specify the destination port or range of ports. For the ICMP protocol, you must also specify the
* ICMP type and code.
* </p>
* <p>
* Rule changes are propagated to instances within the security group as quickly as possible. However, a small delay
* might occur.
* </p>
*
* @param revokeSecurityGroupIngressRequest
* Contains the parameters for RevokeSecurityGroupIngress.
* @return Result of the RevokeSecurityGroupIngress operation returned by the service.
* @sample AmazonEC2.RevokeSecurityGroupIngress
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RevokeSecurityGroupIngress" target="_top">AWS
* API Documentation</a>
*/
@Override
public RevokeSecurityGroupIngressResult revokeSecurityGroupIngress(RevokeSecurityGroupIngressRequest request) {
request = beforeClientExecution(request);
return executeRevokeSecurityGroupIngress(request);
}
@SdkInternalApi
final RevokeSecurityGroupIngressResult executeRevokeSecurityGroupIngress(RevokeSecurityGroupIngressRequest revokeSecurityGroupIngressRequest) {
ExecutionContext executionContext = createExecutionContext(revokeSecurityGroupIngressRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<RevokeSecurityGroupIngressRequest> request = null;
Response<RevokeSecurityGroupIngressResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new RevokeSecurityGroupIngressRequestMarshaller().marshall(super.beforeMarshalling(revokeSecurityGroupIngressRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<RevokeSecurityGroupIngressResult> responseHandler = new StaxResponseHandler<RevokeSecurityGroupIngressResult>(
new RevokeSecurityGroupIngressResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
@Override
@Deprecated
public RevokeSecurityGroupIngressResult revokeSecurityGroupIngress() {
return revokeSecurityGroupIngress(new RevokeSecurityGroupIngressRequest());
}
/**
* <p>
* Launches the specified number of instances using an AMI for which you have permissions.
* </p>
* <p>
* You can specify a number of options, or leave the default options. The following rules apply:
* </p>
* <ul>
* <li>
* <p>
* [EC2-VPC] If you don't specify a subnet ID, we choose a default subnet from your default VPC for you. If you
* don't have a default VPC, you must specify a subnet ID in the request.
* </p>
* </li>
* <li>
* <p>
* [EC2-Classic] If don't specify an Availability Zone, we choose one for you.
* </p>
* </li>
* <li>
* <p>
* Some instance types must be launched into a VPC. If you do not have a default VPC, or if you do not specify a
* subnet ID, the request fails. For more information, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-vpc.html#vpc-only-instance-types">Instance Types
* Available Only in a VPC</a>.
* </p>
* </li>
* <li>
* <p>
* [EC2-VPC] All instances have a network interface with a primary private IPv4 address. If you don't specify this
* address, we choose one from the IPv4 range of your subnet.
* </p>
* </li>
* <li>
* <p>
* Not all instance types support IPv6 addresses. For more information, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html">Instance Types</a>.
* </p>
* </li>
* <li>
* <p>
* If you don't specify a security group ID, we use the default security group. For more information, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html">Security Groups</a>.
* </p>
* </li>
* <li>
* <p>
* If any of the AMIs have a product code attached for which the user has not subscribed, the request fails.
* </p>
* </li>
* </ul>
* <p>
* To ensure faster instance launches, break up large requests into smaller batches. For example, create 5 separate
* launch requests for 100 instances each instead of 1 launch request for 500 instances.
* </p>
* <p>
* An instance is ready for you to use when it's in the <code>running</code> state. You can check the state of your
* instance using <a>DescribeInstances</a>. You can tag instances and EBS volumes during launch, after launch, or
* both. For more information, see <a>CreateTags</a> and <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html">Tagging Your Amazon EC2 Resources</a>.
* </p>
* <p>
* Linux instances have access to the public key of the key pair at boot. You can use this key to provide secure
* access to the instance. Amazon EC2 public images use this feature to provide secure access without passwords. For
* more information, see <a href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html">Key
* Pairs</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.
* </p>
* <p>
* For troubleshooting, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_InstanceStraightToTerminated.html">What To Do If
* An Instance Immediately Terminates</a>, and <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/TroubleshootingInstancesConnecting.html">Troubleshooting
* Connecting to Your Instance</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.
* </p>
*
* @param runInstancesRequest
* Contains the parameters for RunInstances.
* @return Result of the RunInstances operation returned by the service.
* @sample AmazonEC2.RunInstances
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RunInstances" target="_top">AWS API
* Documentation</a>
*/
@Override
public RunInstancesResult runInstances(RunInstancesRequest request) {
request = beforeClientExecution(request);
return executeRunInstances(request);
}
@SdkInternalApi
final RunInstancesResult executeRunInstances(RunInstancesRequest runInstancesRequest) {
ExecutionContext executionContext = createExecutionContext(runInstancesRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<RunInstancesRequest> request = null;
Response<RunInstancesResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new RunInstancesRequestMarshaller().marshall(super.beforeMarshalling(runInstancesRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<RunInstancesResult> responseHandler = new StaxResponseHandler<RunInstancesResult>(new RunInstancesResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Launches the specified Scheduled Instances.
* </p>
* <p>
* Before you can launch a Scheduled Instance, you must purchase it and obtain an identifier using
* <a>PurchaseScheduledInstances</a>.
* </p>
* <p>
* You must launch a Scheduled Instance during its scheduled time period. You can't stop or reboot a Scheduled
* Instance, but you can terminate it as needed. If you terminate a Scheduled Instance before the current scheduled
* time period ends, you can launch it again after a few minutes. For more information, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-scheduled-instances.html">Scheduled Instances</a> in
* the <i>Amazon Elastic Compute Cloud User Guide</i>.
* </p>
*
* @param runScheduledInstancesRequest
* Contains the parameters for RunScheduledInstances.
* @return Result of the RunScheduledInstances operation returned by the service.
* @sample AmazonEC2.RunScheduledInstances
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RunScheduledInstances" target="_top">AWS API
* Documentation</a>
*/
@Override
public RunScheduledInstancesResult runScheduledInstances(RunScheduledInstancesRequest request) {
request = beforeClientExecution(request);
return executeRunScheduledInstances(request);
}
@SdkInternalApi
final RunScheduledInstancesResult executeRunScheduledInstances(RunScheduledInstancesRequest runScheduledInstancesRequest) {
ExecutionContext executionContext = createExecutionContext(runScheduledInstancesRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<RunScheduledInstancesRequest> request = null;
Response<RunScheduledInstancesResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new RunScheduledInstancesRequestMarshaller().marshall(super.beforeMarshalling(runScheduledInstancesRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<RunScheduledInstancesResult> responseHandler = new StaxResponseHandler<RunScheduledInstancesResult>(
new RunScheduledInstancesResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Starts an Amazon EBS-backed AMI that you've previously stopped.
* </p>
* <p>
* Instances that use Amazon EBS volumes as their root devices can be quickly stopped and started. When an instance
* is stopped, the compute resources are released and you are not billed for hourly instance usage. However, your
* root partition Amazon EBS volume remains, continues to persist your data, and you are charged for Amazon EBS
* volume usage. You can restart your instance at any time. Each time you transition an instance from stopped to
* started, Amazon EC2 charges a full instance hour, even if transitions happen multiple times within a single hour.
* </p>
* <p>
* Before stopping an instance, make sure it is in a state from which it can be restarted. Stopping an instance does
* not preserve data stored in RAM.
* </p>
* <p>
* Performing this operation on an instance that uses an instance store as its root device returns an error.
* </p>
* <p>
* For more information, see <a href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Stop_Start.html">Stopping
* Instances</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.
* </p>
*
* @param startInstancesRequest
* Contains the parameters for StartInstances.
* @return Result of the StartInstances operation returned by the service.
* @sample AmazonEC2.StartInstances
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/StartInstances" target="_top">AWS API
* Documentation</a>
*/
@Override
public StartInstancesResult startInstances(StartInstancesRequest request) {
request = beforeClientExecution(request);
return executeStartInstances(request);
}
@SdkInternalApi
final StartInstancesResult executeStartInstances(StartInstancesRequest startInstancesRequest) {
ExecutionContext executionContext = createExecutionContext(startInstancesRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<StartInstancesRequest> request = null;
Response<StartInstancesResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new StartInstancesRequestMarshaller().marshall(super.beforeMarshalling(startInstancesRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<StartInstancesResult> responseHandler = new StaxResponseHandler<StartInstancesResult>(
new StartInstancesResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Stops an Amazon EBS-backed instance.
* </p>
* <p>
* We don't charge hourly usage for a stopped instance, or data transfer fees; however, your root partition Amazon
* EBS volume remains, continues to persist your data, and you are charged for Amazon EBS volume usage. Each time
* you transition an instance from stopped to started, Amazon EC2 charges a full instance hour, even if transitions
* happen multiple times within a single hour.
* </p>
* <p>
* You can't start or stop Spot instances, and you can't stop instance store-backed instances.
* </p>
* <p>
* When you stop an instance, we shut it down. You can restart your instance at any time. Before stopping an
* instance, make sure it is in a state from which it can be restarted. Stopping an instance does not preserve data
* stored in RAM.
* </p>
* <p>
* Stopping an instance is different to rebooting or terminating it. For example, when you stop an instance, the
* root device and any other devices attached to the instance persist. When you terminate an instance, the root
* device and any other devices attached during the instance launch are automatically deleted. For more information
* about the differences between rebooting, stopping, and terminating instances, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-lifecycle.html">Instance Lifecycle</a> in
* the <i>Amazon Elastic Compute Cloud User Guide</i>.
* </p>
* <p>
* When you stop an instance, we attempt to shut it down forcibly after a short while. If your instance appears
* stuck in the stopping state after a period of time, there may be an issue with the underlying host computer. For
* more information, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/TroubleshootingInstancesStopping.html">Troubleshooting
* Stopping Your Instance</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.
* </p>
*
* @param stopInstancesRequest
* Contains the parameters for StopInstances.
* @return Result of the StopInstances operation returned by the service.
* @sample AmazonEC2.StopInstances
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/StopInstances" target="_top">AWS API
* Documentation</a>
*/
@Override
public StopInstancesResult stopInstances(StopInstancesRequest request) {
request = beforeClientExecution(request);
return executeStopInstances(request);
}
@SdkInternalApi
final StopInstancesResult executeStopInstances(StopInstancesRequest stopInstancesRequest) {
ExecutionContext executionContext = createExecutionContext(stopInstancesRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<StopInstancesRequest> request = null;
Response<StopInstancesResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new StopInstancesRequestMarshaller().marshall(super.beforeMarshalling(stopInstancesRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<StopInstancesResult> responseHandler = new StaxResponseHandler<StopInstancesResult>(new StopInstancesResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Shuts down one or more instances. This operation is idempotent; if you terminate an instance more than once, each
* call succeeds.
* </p>
* <p>
* If you specify multiple instances and the request fails (for example, because of a single incorrect instance ID),
* none of the instances are terminated.
* </p>
* <p>
* Terminated instances remain visible after termination (for approximately one hour).
* </p>
* <p>
* By default, Amazon EC2 deletes all EBS volumes that were attached when the instance launched. Volumes attached
* after instance launch continue running.
* </p>
* <p>
* You can stop, start, and terminate EBS-backed instances. You can only terminate instance store-backed instances.
* What happens to an instance differs if you stop it or terminate it. For example, when you stop an instance, the
* root device and any other devices attached to the instance persist. When you terminate an instance, any attached
* EBS volumes with the <code>DeleteOnTermination</code> block device mapping parameter set to <code>true</code> are
* automatically deleted. For more information about the differences between stopping and terminating instances, see
* <a href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-lifecycle.html">Instance Lifecycle</a>
* in the <i>Amazon Elastic Compute Cloud User Guide</i>.
* </p>
* <p>
* For more information about troubleshooting, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/TroubleshootingInstancesShuttingDown.html"
* >Troubleshooting Terminating Your Instance</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.
* </p>
*
* @param terminateInstancesRequest
* Contains the parameters for TerminateInstances.
* @return Result of the TerminateInstances operation returned by the service.
* @sample AmazonEC2.TerminateInstances
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/TerminateInstances" target="_top">AWS API
* Documentation</a>
*/
@Override
public TerminateInstancesResult terminateInstances(TerminateInstancesRequest request) {
request = beforeClientExecution(request);
return executeTerminateInstances(request);
}
@SdkInternalApi
final TerminateInstancesResult executeTerminateInstances(TerminateInstancesRequest terminateInstancesRequest) {
ExecutionContext executionContext = createExecutionContext(terminateInstancesRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<TerminateInstancesRequest> request = null;
Response<TerminateInstancesResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new TerminateInstancesRequestMarshaller().marshall(super.beforeMarshalling(terminateInstancesRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<TerminateInstancesResult> responseHandler = new StaxResponseHandler<TerminateInstancesResult>(
new TerminateInstancesResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Unassigns one or more IPv6 addresses from a network interface.
* </p>
*
* @param unassignIpv6AddressesRequest
* @return Result of the UnassignIpv6Addresses operation returned by the service.
* @sample AmazonEC2.UnassignIpv6Addresses
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/UnassignIpv6Addresses" target="_top">AWS API
* Documentation</a>
*/
@Override
public UnassignIpv6AddressesResult unassignIpv6Addresses(UnassignIpv6AddressesRequest request) {
request = beforeClientExecution(request);
return executeUnassignIpv6Addresses(request);
}
@SdkInternalApi
final UnassignIpv6AddressesResult executeUnassignIpv6Addresses(UnassignIpv6AddressesRequest unassignIpv6AddressesRequest) {
ExecutionContext executionContext = createExecutionContext(unassignIpv6AddressesRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<UnassignIpv6AddressesRequest> request = null;
Response<UnassignIpv6AddressesResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new UnassignIpv6AddressesRequestMarshaller().marshall(super.beforeMarshalling(unassignIpv6AddressesRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<UnassignIpv6AddressesResult> responseHandler = new StaxResponseHandler<UnassignIpv6AddressesResult>(
new UnassignIpv6AddressesResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Unassigns one or more secondary private IP addresses from a network interface.
* </p>
*
* @param unassignPrivateIpAddressesRequest
* Contains the parameters for UnassignPrivateIpAddresses.
* @return Result of the UnassignPrivateIpAddresses operation returned by the service.
* @sample AmazonEC2.UnassignPrivateIpAddresses
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/UnassignPrivateIpAddresses" target="_top">AWS
* API Documentation</a>
*/
@Override
public UnassignPrivateIpAddressesResult unassignPrivateIpAddresses(UnassignPrivateIpAddressesRequest request) {
request = beforeClientExecution(request);
return executeUnassignPrivateIpAddresses(request);
}
@SdkInternalApi
final UnassignPrivateIpAddressesResult executeUnassignPrivateIpAddresses(UnassignPrivateIpAddressesRequest unassignPrivateIpAddressesRequest) {
ExecutionContext executionContext = createExecutionContext(unassignPrivateIpAddressesRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<UnassignPrivateIpAddressesRequest> request = null;
Response<UnassignPrivateIpAddressesResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new UnassignPrivateIpAddressesRequestMarshaller().marshall(super.beforeMarshalling(unassignPrivateIpAddressesRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<UnassignPrivateIpAddressesResult> responseHandler = new StaxResponseHandler<UnassignPrivateIpAddressesResult>(
new UnassignPrivateIpAddressesResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* <p>
* Disables detailed monitoring for a running instance. For more information, see <a
* href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-cloudwatch.html">Monitoring Your Instances and
* Volumes</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.
* </p>
*
* @param unmonitorInstancesRequest
* Contains the parameters for UnmonitorInstances.
* @return Result of the UnmonitorInstances operation returned by the service.
* @sample AmazonEC2.UnmonitorInstances
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/UnmonitorInstances" target="_top">AWS API
* Documentation</a>
*/
@Override
public UnmonitorInstancesResult unmonitorInstances(UnmonitorInstancesRequest request) {
request = beforeClientExecution(request);
return executeUnmonitorInstances(request);
}
@SdkInternalApi
final UnmonitorInstancesResult executeUnmonitorInstances(UnmonitorInstancesRequest unmonitorInstancesRequest) {
ExecutionContext executionContext = createExecutionContext(unmonitorInstancesRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request<UnmonitorInstancesRequest> request = null;
Response<UnmonitorInstancesResult> response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new UnmonitorInstancesRequestMarshaller().marshall(super.beforeMarshalling(unmonitorInstancesRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
StaxResponseHandler<UnmonitorInstancesResult> responseHandler = new StaxResponseHandler<UnmonitorInstancesResult>(
new UnmonitorInstancesResultStaxUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
* Checks whether you have the required permissions for the provided Amazon EC2 operation, without actually running
* it. The returned DryRunResult object contains the information of whether the dry-run was successful. This method
* will throw exception when the service response does not clearly indicate whether you have the permission.
*
* @param request
* The request object for any Amazon EC2 operation supported with dry-run.
*
* @return A DryRunResult object that contains the information of whether the dry-run was successful.
*
* @throws AmazonClientException
* If any internal errors are encountered inside the client while attempting to make the request or handle
* the response. Or if the service response does not clearly indicate whether you have the permission.
* @throws AmazonServiceException
* If an error response is returned by Amazon EC2 indicating either a problem with the data in the request,
* or a server side issue.
*/
public <X extends AmazonWebServiceRequest> DryRunResult<X> dryRun(DryRunSupportedRequest<X> request) throws AmazonServiceException, AmazonClientException {
Request<X> dryRunRequest = request.getDryRunRequest();
ExecutionContext executionContext = createExecutionContext(dryRunRequest);
try {
invoke(dryRunRequest, new StaxResponseHandler<Void>(new VoidStaxUnmarshaller<Void>()), executionContext);
throw new AmazonClientException("Unrecognized service response for the dry-run request.");
} catch (AmazonServiceException ase) {
if (ase.getErrorCode().equals("DryRunOperation") && ase.getStatusCode() == 412) {
return new DryRunResult<X>(true, request, ase.getMessage(), ase);
} else if (ase.getErrorCode().equals("UnauthorizedOperation") && ase.getStatusCode() == 403) {
return new DryRunResult<X>(false, request, ase.getMessage(), ase);
}
throw new AmazonClientException("Unrecognized service response for the dry-run request.", ase);
}
}
/**
* Returns additional metadata for a previously executed successful, request, typically used for debugging issues
* where a service isn't acting as expected. This data isn't considered part of the result data returned by an
* operation, so it's available through this separate, diagnostic interface.
* <p>
* Response metadata is only cached for a limited period of time, so if you need to access this extra diagnostic
* information for an executed request, you should use this method to retrieve it as soon as possible after
* executing the request.
*
* @param request
* The originally executed request
*
* @return The response metadata for the specified request, or null if none is available.
*/
public ResponseMetadata getCachedResponseMetadata(AmazonWebServiceRequest request) {
return client.getResponseMetadataForRequest(request);
}
/**
* Normal invoke with authentication. Credentials are required and may be overriden at the request level.
**/
private <X, Y extends AmazonWebServiceRequest> Response<X> invoke(Request<Y> request, HttpResponseHandler<AmazonWebServiceResponse<X>> responseHandler,
ExecutionContext executionContext) {
executionContext.setCredentialsProvider(CredentialUtils.getCredentialsProvider(request.getOriginalRequest(), awsCredentialsProvider));
return doInvoke(request, responseHandler, executionContext);
}
/**
* Invoke with no authentication. Credentials are not required and any credentials set on the client or request will
* be ignored for this operation.
**/
private <X, Y extends AmazonWebServiceRequest> Response<X> anonymousInvoke(Request<Y> request,
HttpResponseHandler<AmazonWebServiceResponse<X>> responseHandler, ExecutionContext executionContext) {
return doInvoke(request, responseHandler, executionContext);
}
/**
* Invoke the request using the http client. Assumes credentials (or lack thereof) have been configured in the
* ExecutionContext beforehand.
**/
private <X, Y extends AmazonWebServiceRequest> Response<X> doInvoke(Request<Y> request, HttpResponseHandler<AmazonWebServiceResponse<X>> responseHandler,
ExecutionContext executionContext) {
request.setEndpoint(endpoint);
request.setTimeOffset(timeOffset);
DefaultErrorResponseHandler errorResponseHandler = new DefaultErrorResponseHandler(exceptionUnmarshallers);
return client.execute(request, responseHandler, errorResponseHandler, executionContext);
}
@Override
public AmazonEC2Waiters waiters() {
if (waiters == null) {
synchronized (this) {
if (waiters == null) {
waiters = new AmazonEC2Waiters(this);
}
}
}
return waiters;
}
@Override
public void shutdown() {
super.shutdown();
if (waiters != null) {
waiters.shutdown();
}
}
}