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

com.amazonaws.services.ec2.AmazonEC2Client Maven / Gradle / Ivy

Go to download

The AWS Java SDK for Amazon EC2 module holds the client classes that are used for communicating with Amazon EC2 Service

There is a newer version: 1.12.772
Show newest version
/*
 * 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.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.
 * 

* Amazon Elastic Compute Cloud *

* 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. *

*/ @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> exceptionUnmarshallers = new ArrayList>(); /** * 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: *
    *
  • Environment Variables - AWS_ACCESS_KEY_ID and AWS_SECRET_KEY
  • *
  • Java System Properties - aws.accessKeyId and aws.secretKey
  • *
  • Instance profile credentials delivered through the Amazon EC2 metadata service
  • *
* *

* 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: *

    *
  • Environment Variables - AWS_ACCESS_KEY_ID and AWS_SECRET_KEY
  • *
  • Java System Properties - aws.accessKeyId and aws.secretKey
  • *
  • Instance profile credentials delivered through the Amazon EC2 metadata service
  • *
* *

* 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. * *

* 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. * *

* 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. * *

* 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. * *

* 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. * *

* 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. * *

* 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()); } /** *

* Accepts the Convertible Reserved Instance exchange quote described in the * GetReservedInstancesExchangeQuote call. *

* * @param acceptReservedInstancesExchangeQuoteRequest * Contains the parameters for accepting the quote. * @return Result of the AcceptReservedInstancesExchangeQuote operation returned by the service. * @sample AmazonEC2.AcceptReservedInstancesExchangeQuote * @see AWS API Documentation */ @Override public AcceptReservedInstancesExchangeQuoteResult acceptReservedInstancesExchangeQuote( AcceptReservedInstancesExchangeQuoteRequest acceptReservedInstancesExchangeQuoteRequest) { ExecutionContext executionContext = createExecutionContext(acceptReservedInstancesExchangeQuoteRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new AcceptReservedInstancesExchangeQuoteResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Accept a VPC peering connection request. To accept a request, the VPC peering connection must be in the * pending-acceptance state, and you must be the owner of the peer VPC. Use the * DescribeVpcPeeringConnections request to view your outstanding VPC peering connection requests. *

* * @param acceptVpcPeeringConnectionRequest * Contains the parameters for AcceptVpcPeeringConnection. * @return Result of the AcceptVpcPeeringConnection operation returned by the service. * @sample AmazonEC2.AcceptVpcPeeringConnection * @see AWS * API Documentation */ @Override public AcceptVpcPeeringConnectionResult acceptVpcPeeringConnection(AcceptVpcPeeringConnectionRequest acceptVpcPeeringConnectionRequest) { ExecutionContext executionContext = createExecutionContext(acceptVpcPeeringConnectionRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new AcceptVpcPeeringConnectionResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public AcceptVpcPeeringConnectionResult acceptVpcPeeringConnection() { return acceptVpcPeeringConnection(new AcceptVpcPeeringConnectionRequest()); } /** *

* Acquires an Elastic IP address. *

*

* An Elastic IP address is for use either in the EC2-Classic platform or in a VPC. For more information, see Elastic IP Addresses * in the Amazon Elastic Compute Cloud User Guide. *

* * @param allocateAddressRequest * Contains the parameters for AllocateAddress. * @return Result of the AllocateAddress operation returned by the service. * @sample AmazonEC2.AllocateAddress * @see AWS API * Documentation */ @Override public AllocateAddressResult allocateAddress(AllocateAddressRequest allocateAddressRequest) { ExecutionContext executionContext = createExecutionContext(allocateAddressRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new AllocateAddressResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public AllocateAddressResult allocateAddress() { return allocateAddress(new AllocateAddressRequest()); } /** *

* 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. *

* * @param allocateHostsRequest * Contains the parameters for AllocateHosts. * @return Result of the AllocateHosts operation returned by the service. * @sample AmazonEC2.AllocateHosts * @see AWS API * Documentation */ @Override public AllocateHostsResult allocateHosts(AllocateHostsRequest allocateHostsRequest) { ExecutionContext executionContext = createExecutionContext(allocateHostsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler(new AllocateHostsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* 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 IP Addresses Per * Network Interface Per Instance Type in the Amazon Elastic Compute Cloud User Guide. *

* * @param assignIpv6AddressesRequest * @return Result of the AssignIpv6Addresses operation returned by the service. * @sample AmazonEC2.AssignIpv6Addresses * @see AWS API * Documentation */ @Override public AssignIpv6AddressesResult assignIpv6Addresses(AssignIpv6AddressesRequest assignIpv6AddressesRequest) { ExecutionContext executionContext = createExecutionContext(assignIpv6AddressesRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new AssignIpv6AddressesResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* 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 Instance Types in the Amazon * Elastic Compute Cloud User Guide. For more information about Elastic IP addresses, see Elastic IP Addresses * in the Amazon Elastic Compute Cloud User Guide. *

*

* AssignPrivateIpAddresses is available only in EC2-VPC. *

* * @param assignPrivateIpAddressesRequest * Contains the parameters for AssignPrivateIpAddresses. * @return Result of the AssignPrivateIpAddresses operation returned by the service. * @sample AmazonEC2.AssignPrivateIpAddresses * @see AWS * API Documentation */ @Override public AssignPrivateIpAddressesResult assignPrivateIpAddresses(AssignPrivateIpAddressesRequest assignPrivateIpAddressesRequest) { ExecutionContext executionContext = createExecutionContext(assignPrivateIpAddressesRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new AssignPrivateIpAddressesResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Associates an Elastic IP address with an instance or a network interface. *

*

* An Elastic IP address is for use in either the EC2-Classic platform or in a VPC. For more information, see Elastic IP Addresses * in the Amazon Elastic Compute Cloud User Guide. *

*

* [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. *

*

* [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. *

* *

* 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 Elastic IP Addresses section of Amazon * EC2 Pricing. *

*
* * @param associateAddressRequest * Contains the parameters for AssociateAddress. * @return Result of the AssociateAddress operation returned by the service. * @sample AmazonEC2.AssociateAddress * @see AWS API * Documentation */ @Override public AssociateAddressResult associateAddress(AssociateAddressRequest associateAddressRequest) { ExecutionContext executionContext = createExecutionContext(associateAddressRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new AssociateAddressResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Associates a set of DHCP options (that you've previously created) with the specified VPC, or associates no DHCP * options with the VPC. *

*

* 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. *

*

* For more information, see DHCP Options Sets in the * Amazon Virtual Private Cloud User Guide. *

* * @param associateDhcpOptionsRequest * Contains the parameters for AssociateDhcpOptions. * @return Result of the AssociateDhcpOptions operation returned by the service. * @sample AmazonEC2.AssociateDhcpOptions * @see AWS API * Documentation */ @Override public AssociateDhcpOptionsResult associateDhcpOptions(AssociateDhcpOptionsRequest associateDhcpOptionsRequest) { ExecutionContext executionContext = createExecutionContext(associateDhcpOptionsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new AssociateDhcpOptionsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Associates an IAM instance profile with a running or stopped instance. You cannot associate more than one IAM * instance profile with an instance. *

* * @param associateIamInstanceProfileRequest * @return Result of the AssociateIamInstanceProfile operation returned by the service. * @sample AmazonEC2.AssociateIamInstanceProfile * @see AWS API Documentation */ @Override public AssociateIamInstanceProfileResult associateIamInstanceProfile(AssociateIamInstanceProfileRequest associateIamInstanceProfileRequest) { ExecutionContext executionContext = createExecutionContext(associateIamInstanceProfileRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new AssociateIamInstanceProfileResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* 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. *

*

* For more information about route tables, see Route Tables in the * Amazon Virtual Private Cloud User Guide. *

* * @param associateRouteTableRequest * Contains the parameters for AssociateRouteTable. * @return Result of the AssociateRouteTable operation returned by the service. * @sample AmazonEC2.AssociateRouteTable * @see AWS API * Documentation */ @Override public AssociateRouteTableResult associateRouteTable(AssociateRouteTableRequest associateRouteTableRequest) { ExecutionContext executionContext = createExecutionContext(associateRouteTableRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new AssociateRouteTableResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* 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. *

* * @param associateSubnetCidrBlockRequest * @return Result of the AssociateSubnetCidrBlock operation returned by the service. * @sample AmazonEC2.AssociateSubnetCidrBlock * @see AWS * API Documentation */ @Override public AssociateSubnetCidrBlockResult associateSubnetCidrBlock(AssociateSubnetCidrBlockRequest associateSubnetCidrBlockRequest) { ExecutionContext executionContext = createExecutionContext(associateSubnetCidrBlockRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new AssociateSubnetCidrBlockResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* 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. *

* * @param associateVpcCidrBlockRequest * @return Result of the AssociateVpcCidrBlock operation returned by the service. * @sample AmazonEC2.AssociateVpcCidrBlock * @see AWS API * Documentation */ @Override public AssociateVpcCidrBlockResult associateVpcCidrBlock(AssociateVpcCidrBlockRequest associateVpcCidrBlockRequest) { ExecutionContext executionContext = createExecutionContext(associateVpcCidrBlockRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new AssociateVpcCidrBlockResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* 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 * running 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. *

*

* 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. *

*

* Linking your instance to a VPC is sometimes referred to as attaching your instance. *

* * @param attachClassicLinkVpcRequest * Contains the parameters for AttachClassicLinkVpc. * @return Result of the AttachClassicLinkVpc operation returned by the service. * @sample AmazonEC2.AttachClassicLinkVpc * @see AWS API * Documentation */ @Override public AttachClassicLinkVpcResult attachClassicLinkVpc(AttachClassicLinkVpcRequest attachClassicLinkVpcRequest) { ExecutionContext executionContext = createExecutionContext(attachClassicLinkVpcRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new AttachClassicLinkVpcResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* 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 Amazon Virtual Private Cloud User Guide. *

* * @param attachInternetGatewayRequest * Contains the parameters for AttachInternetGateway. * @return Result of the AttachInternetGateway operation returned by the service. * @sample AmazonEC2.AttachInternetGateway * @see AWS API * Documentation */ @Override public AttachInternetGatewayResult attachInternetGateway(AttachInternetGatewayRequest attachInternetGatewayRequest) { ExecutionContext executionContext = createExecutionContext(attachInternetGatewayRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new AttachInternetGatewayResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Attaches a network interface to an instance. *

* * @param attachNetworkInterfaceRequest * Contains the parameters for AttachNetworkInterface. * @return Result of the AttachNetworkInterface operation returned by the service. * @sample AmazonEC2.AttachNetworkInterface * @see AWS API * Documentation */ @Override public AttachNetworkInterfaceResult attachNetworkInterface(AttachNetworkInterfaceRequest attachNetworkInterfaceRequest) { ExecutionContext executionContext = createExecutionContext(attachNetworkInterfaceRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new AttachNetworkInterfaceResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Attaches an EBS volume to a running or stopped instance and exposes it to the instance with the specified device * name. *

*

* Encrypted EBS volumes may only be attached to instances that support Amazon EBS encryption. For more information, * see Amazon EBS Encryption in * the Amazon Elastic Compute Cloud User Guide. *

*

* For a list of supported device names, see Attaching an EBS Volume to an * Instance. Any device names that aren't reserved for instance store volumes can be used for EBS volumes. For * more information, see Amazon * EC2 Instance Store in the Amazon Elastic Compute Cloud User Guide. *

*

* If a volume has an AWS Marketplace product code: *

*
    *
  • *

    * The volume can be attached only to a stopped instance. *

    *
  • *
  • *

    * AWS Marketplace product codes are copied from the volume to the instance. *

    *
  • *
  • *

    * You must be subscribed to the product. *

    *
  • *
  • *

    * The instance type and operating system of the instance must support the product. For example, you can't detach a * volume from a Windows instance and attach it to a Linux instance. *

    *
  • *
*

* For an overview of the AWS Marketplace, see Introducing AWS Marketplace. *

*

* For more information about EBS volumes, see Attaching Amazon EBS * Volumes in the Amazon Elastic Compute Cloud User Guide. *

* * @param attachVolumeRequest * Contains the parameters for AttachVolume. * @return Result of the AttachVolume operation returned by the service. * @sample AmazonEC2.AttachVolume * @see AWS API * Documentation */ @Override public AttachVolumeResult attachVolume(AttachVolumeRequest attachVolumeRequest) { ExecutionContext executionContext = createExecutionContext(attachVolumeRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler(new AttachVolumeResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Attaches a virtual private gateway to a VPC. For more information, see Adding a Hardware Virtual Private * Gateway to Your VPC in the Amazon Virtual Private Cloud User Guide. *

* * @param attachVpnGatewayRequest * Contains the parameters for AttachVpnGateway. * @return Result of the AttachVpnGateway operation returned by the service. * @sample AmazonEC2.AttachVpnGateway * @see AWS API * Documentation */ @Override public AttachVpnGatewayResult attachVpnGateway(AttachVpnGatewayRequest attachVpnGatewayRequest) { ExecutionContext executionContext = createExecutionContext(attachVpnGatewayRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new AttachVpnGatewayResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* [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 Security Groups for Your * VPC in the Amazon Virtual Private Cloud User Guide. For more information about security group limits, * see Amazon VPC * Limits. *

*

* 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. *

*

* Rule changes are propagated to affected instances as quickly as possible. However, a small delay might occur. *

* * @param authorizeSecurityGroupEgressRequest * Contains the parameters for AuthorizeSecurityGroupEgress. * @return Result of the AuthorizeSecurityGroupEgress operation returned by the service. * @sample AmazonEC2.AuthorizeSecurityGroupEgress * @see AWS API Documentation */ @Override public AuthorizeSecurityGroupEgressResult authorizeSecurityGroupEgress(AuthorizeSecurityGroupEgressRequest authorizeSecurityGroupEgressRequest) { ExecutionContext executionContext = createExecutionContext(authorizeSecurityGroupEgressRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new AuthorizeSecurityGroupEgressResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Adds one or more ingress rules to a security group. *

*

* Rule changes are propagated to instances within the security group as quickly as possible. However, a small delay * might occur. *

*

* [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 source groups) 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. *

*

* [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 source groups) 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 Amazon VPC Limits. *

* * @param authorizeSecurityGroupIngressRequest * Contains the parameters for AuthorizeSecurityGroupIngress. * @return Result of the AuthorizeSecurityGroupIngress operation returned by the service. * @sample AmazonEC2.AuthorizeSecurityGroupIngress * @see AWS API Documentation */ @Override public AuthorizeSecurityGroupIngressResult authorizeSecurityGroupIngress(AuthorizeSecurityGroupIngressRequest authorizeSecurityGroupIngressRequest) { ExecutionContext executionContext = createExecutionContext(authorizeSecurityGroupIngressRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new AuthorizeSecurityGroupIngressResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Bundles an Amazon instance store-backed Windows instance. *

*

* During bundling, only the root device volume (C:\) is bundled. Data on other instance store volumes is not * preserved. *

* *

* This action is not applicable for Linux/Unix instances or Windows instances that are backed by Amazon EBS. *

*
*

* For more information, see Creating an * Instance Store-Backed Windows AMI. *

* * @param bundleInstanceRequest * Contains the parameters for BundleInstance. * @return Result of the BundleInstance operation returned by the service. * @sample AmazonEC2.BundleInstance * @see AWS API * Documentation */ @Override public BundleInstanceResult bundleInstance(BundleInstanceRequest bundleInstanceRequest) { ExecutionContext executionContext = createExecutionContext(bundleInstanceRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new BundleInstanceResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Cancels a bundling operation for an instance store-backed Windows instance. *

* * @param cancelBundleTaskRequest * Contains the parameters for CancelBundleTask. * @return Result of the CancelBundleTask operation returned by the service. * @sample AmazonEC2.CancelBundleTask * @see AWS API * Documentation */ @Override public CancelBundleTaskResult cancelBundleTask(CancelBundleTaskRequest cancelBundleTaskRequest) { ExecutionContext executionContext = createExecutionContext(cancelBundleTaskRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new CancelBundleTaskResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* 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. *

*

* For more information, see Importing a * Virtual Machine Using the Amazon EC2 CLI. *

* * @param cancelConversionTaskRequest * Contains the parameters for CancelConversionTask. * @return Result of the CancelConversionTask operation returned by the service. * @sample AmazonEC2.CancelConversionTask * @see AWS API * Documentation */ @Override public CancelConversionTaskResult cancelConversionTask(CancelConversionTaskRequest cancelConversionTaskRequest) { ExecutionContext executionContext = createExecutionContext(cancelConversionTaskRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new CancelConversionTaskResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* 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. *

* * @param cancelExportTaskRequest * Contains the parameters for CancelExportTask. * @return Result of the CancelExportTask operation returned by the service. * @sample AmazonEC2.CancelExportTask * @see AWS API * Documentation */ @Override public CancelExportTaskResult cancelExportTask(CancelExportTaskRequest cancelExportTaskRequest) { ExecutionContext executionContext = createExecutionContext(cancelExportTaskRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new CancelExportTaskResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Cancels an in-process import virtual machine or import snapshot task. *

* * @param cancelImportTaskRequest * Contains the parameters for CancelImportTask. * @return Result of the CancelImportTask operation returned by the service. * @sample AmazonEC2.CancelImportTask * @see AWS API * Documentation */ @Override public CancelImportTaskResult cancelImportTask(CancelImportTaskRequest cancelImportTaskRequest) { ExecutionContext executionContext = createExecutionContext(cancelImportTaskRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new CancelImportTaskResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public CancelImportTaskResult cancelImportTask() { return cancelImportTask(new CancelImportTaskRequest()); } /** *

* Cancels the specified Reserved Instance listing in the Reserved Instance Marketplace. *

*

* For more information, see Reserved Instance * Marketplace in the Amazon Elastic Compute Cloud User Guide. *

* * @param cancelReservedInstancesListingRequest * Contains the parameters for CancelReservedInstancesListing. * @return Result of the CancelReservedInstancesListing operation returned by the service. * @sample AmazonEC2.CancelReservedInstancesListing * @see AWS API Documentation */ @Override public CancelReservedInstancesListingResult cancelReservedInstancesListing(CancelReservedInstancesListingRequest cancelReservedInstancesListingRequest) { ExecutionContext executionContext = createExecutionContext(cancelReservedInstancesListingRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new CancelReservedInstancesListingResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Cancels the specified Spot fleet requests. *

*

* 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 cancelled_terminating state. Otherwise, the Spot fleet request enters the * cancelled_running state and the instances continue to run until they are interrupted or you * terminate them manually. *

* * @param cancelSpotFleetRequestsRequest * Contains the parameters for CancelSpotFleetRequests. * @return Result of the CancelSpotFleetRequests operation returned by the service. * @sample AmazonEC2.CancelSpotFleetRequests * @see AWS * API Documentation */ @Override public CancelSpotFleetRequestsResult cancelSpotFleetRequests(CancelSpotFleetRequestsRequest cancelSpotFleetRequestsRequest) { ExecutionContext executionContext = createExecutionContext(cancelSpotFleetRequestsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new CancelSpotFleetRequestsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* 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 Spot Instance Requests in the * Amazon Elastic Compute Cloud User Guide. *

* *

* Canceling a Spot instance request does not terminate running Spot instances associated with the request. *

*
* * @param cancelSpotInstanceRequestsRequest * Contains the parameters for CancelSpotInstanceRequests. * @return Result of the CancelSpotInstanceRequests operation returned by the service. * @sample AmazonEC2.CancelSpotInstanceRequests * @see AWS * API Documentation */ @Override public CancelSpotInstanceRequestsResult cancelSpotInstanceRequests(CancelSpotInstanceRequestsRequest cancelSpotInstanceRequestsRequest) { ExecutionContext executionContext = createExecutionContext(cancelSpotInstanceRequestsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new CancelSpotInstanceRequestsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* 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. *

* * @param confirmProductInstanceRequest * Contains the parameters for ConfirmProductInstance. * @return Result of the ConfirmProductInstance operation returned by the service. * @sample AmazonEC2.ConfirmProductInstance * @see AWS API * Documentation */ @Override public ConfirmProductInstanceResult confirmProductInstance(ConfirmProductInstanceRequest confirmProductInstanceRequest) { ExecutionContext executionContext = createExecutionContext(confirmProductInstanceRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new ConfirmProductInstanceResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* 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. *

*

* For more information, see Copying * AMIs in the Amazon Elastic Compute Cloud User Guide. *

* * @param copyImageRequest * Contains the parameters for CopyImage. * @return Result of the CopyImage operation returned by the service. * @sample AmazonEC2.CopyImage * @see AWS API * Documentation */ @Override public CopyImageResult copyImage(CopyImageRequest copyImageRequest) { ExecutionContext executionContext = createExecutionContext(copyImageRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler(new CopyImageResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* 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. *

*

* Copies of encrypted EBS snapshots remain encrypted. Copies of unencrypted snapshots remain unencrypted, unless * the Encrypted 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 KmsKeyId parameter. *

* *

* To copy an encrypted snapshot that has been shared from another account, you must have permissions for the CMK * used to encrypt the snapshot. *

*
*

* Snapshots created by the CopySnapshot action have an arbitrary volume ID that should not be used for any purpose. *

*
*

* For more information, see Copying an Amazon EBS * Snapshot in the Amazon Elastic Compute Cloud User Guide. *

* * @param copySnapshotRequest * Contains the parameters for CopySnapshot. * @return Result of the CopySnapshot operation returned by the service. * @sample AmazonEC2.CopySnapshot * @see AWS API * Documentation */ @Override public CopySnapshotResult copySnapshot(CopySnapshotRequest copySnapshotRequest) { ExecutionContext executionContext = createExecutionContext(copySnapshotRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler(new CopySnapshotResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* 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). *

*

* 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). *

* *

* Amazon EC2 supports all 2-byte ASN numbers in the range of 1 - 65534, with the exception of 7224, which is * reserved in the us-east-1 region, and 9059, which is reserved in the eu-west-1 region. *

*
*

* For more information about VPN customer gateways, see Adding a Hardware Virtual Private * Gateway to Your VPC in the Amazon Virtual Private Cloud User Guide. *

* *

* 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. *

*
* * @param createCustomerGatewayRequest * Contains the parameters for CreateCustomerGateway. * @return Result of the CreateCustomerGateway operation returned by the service. * @sample AmazonEC2.CreateCustomerGateway * @see AWS API * Documentation */ @Override public CreateCustomerGatewayResult createCustomerGateway(CreateCustomerGatewayRequest createCustomerGatewayRequest) { ExecutionContext executionContext = createExecutionContext(createCustomerGatewayRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new CreateCustomerGatewayResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* 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 RFC 2132. *

*
    *
  • *

    * domain-name-servers - 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 domain-name, you must set domain-name-servers to a custom DNS * server. *

    *
  • *
  • *

    * domain-name - If you're using AmazonProvidedDNS in "us-east-1", specify "ec2.internal". If you're * using AmazonProvidedDNS in another region, specify "region.compute.internal" (for example, * "ap-northeast-1.compute.internal"). Otherwise, specify a domain name (for example, "MyCompany.com"). This value * is used to complete unqualified DNS hostnames. Important: 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. *

    *
  • *
  • *

    * ntp-servers - The IP addresses of up to four Network Time Protocol (NTP) servers. *

    *
  • *
  • *

    * netbios-name-servers - The IP addresses of up to four NetBIOS name servers. *

    *
  • *
  • *

    * netbios-node-type - 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 RFC 2132. *

    *
  • *
*

* 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 domain-name-servers option either to AmazonProvidedDNS or to a domain name server * of your choice. For more information about DHCP options, see DHCP Options Sets in the * Amazon Virtual Private Cloud User Guide. *

* * @param createDhcpOptionsRequest * Contains the parameters for CreateDhcpOptions. * @return Result of the CreateDhcpOptions operation returned by the service. * @sample AmazonEC2.CreateDhcpOptions * @see AWS API * Documentation */ @Override public CreateDhcpOptionsResult createDhcpOptions(CreateDhcpOptionsRequest createDhcpOptionsRequest) { ExecutionContext executionContext = createExecutionContext(createDhcpOptionsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new CreateDhcpOptionsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* [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. *

* * @param createEgressOnlyInternetGatewayRequest * @return Result of the CreateEgressOnlyInternetGateway operation returned by the service. * @sample AmazonEC2.CreateEgressOnlyInternetGateway * @see AWS API Documentation */ @Override public CreateEgressOnlyInternetGatewayResult createEgressOnlyInternetGateway(CreateEgressOnlyInternetGatewayRequest createEgressOnlyInternetGatewayRequest) { ExecutionContext executionContext = createExecutionContext(createEgressOnlyInternetGatewayRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new CreateEgressOnlyInternetGatewayResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* 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. *

*

* In your request, you must also specify an IAM role that has permission to publish logs to CloudWatch Logs. *

* * @param createFlowLogsRequest * Contains the parameters for CreateFlowLogs. * @return Result of the CreateFlowLogs operation returned by the service. * @sample AmazonEC2.CreateFlowLogs * @see AWS API * Documentation */ @Override public CreateFlowLogsResult createFlowLogs(CreateFlowLogsRequest createFlowLogsRequest) { ExecutionContext executionContext = createExecutionContext(createFlowLogsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new CreateFlowLogsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Creates an Amazon EBS-backed AMI from an Amazon EBS-backed instance that is either running or stopped. *

*

* 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. *

*

* For more information, see Creating Amazon EBS-Backed * Linux AMIs in the Amazon Elastic Compute Cloud User Guide. *

* * @param createImageRequest * Contains the parameters for CreateImage. * @return Result of the CreateImage operation returned by the service. * @sample AmazonEC2.CreateImage * @see AWS API * Documentation */ @Override public CreateImageResult createImage(CreateImageRequest createImageRequest) { ExecutionContext executionContext = createExecutionContext(createImageRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler(new CreateImageResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Exports a running or stopped instance to an S3 bucket. *

*

* For information about the supported operating systems, image formats, and known limitations for the types of * instances you can export, see Exporting an Instance as a VM Using VM * Import/Export in the VM Import/Export User Guide. *

* * @param createInstanceExportTaskRequest * Contains the parameters for CreateInstanceExportTask. * @return Result of the CreateInstanceExportTask operation returned by the service. * @sample AmazonEC2.CreateInstanceExportTask * @see AWS * API Documentation */ @Override public CreateInstanceExportTaskResult createInstanceExportTask(CreateInstanceExportTaskRequest createInstanceExportTaskRequest) { ExecutionContext executionContext = createExecutionContext(createInstanceExportTaskRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new CreateInstanceExportTaskResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Creates an Internet gateway for use with a VPC. After creating the Internet gateway, you attach it to a VPC using * AttachInternetGateway. *

*

* For more information about your VPC and Internet gateway, see the Amazon Virtual Private Cloud User Guide. *

* * @param createInternetGatewayRequest * Contains the parameters for CreateInternetGateway. * @return Result of the CreateInternetGateway operation returned by the service. * @sample AmazonEC2.CreateInternetGateway * @see AWS API * Documentation */ @Override public CreateInternetGatewayResult createInternetGateway(CreateInternetGatewayRequest createInternetGatewayRequest) { ExecutionContext executionContext = createExecutionContext(createInternetGatewayRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new CreateInternetGatewayResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public CreateInternetGatewayResult createInternetGateway() { return createInternetGateway(new CreateInternetGatewayRequest()); } /** *

* 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. *

*

* You can have up to five thousand key pairs per region. *

*

* 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 ImportKeyPair. *

*

* For more information about key pairs, see Key Pairs in the Amazon * Elastic Compute Cloud User Guide. *

* * @param createKeyPairRequest * Contains the parameters for CreateKeyPair. * @return Result of the CreateKeyPair operation returned by the service. * @sample AmazonEC2.CreateKeyPair * @see AWS API * Documentation */ @Override public CreateKeyPairResult createKeyPair(CreateKeyPairRequest createKeyPairRequest) { ExecutionContext executionContext = createExecutionContext(createKeyPairRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler(new CreateKeyPairResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* 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 NAT Gateways in the * Amazon Virtual Private Cloud User Guide. *

* * @param createNatGatewayRequest * Contains the parameters for CreateNatGateway. * @return Result of the CreateNatGateway operation returned by the service. * @sample AmazonEC2.CreateNatGateway * @see AWS API * Documentation */ @Override public CreateNatGatewayResult createNatGateway(CreateNatGatewayRequest createNatGatewayRequest) { ExecutionContext executionContext = createExecutionContext(createNatGatewayRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new CreateNatGatewayResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* 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. *

*

* For more information about network ACLs, see Network ACLs in the Amazon * Virtual Private Cloud User Guide. *

* * @param createNetworkAclRequest * Contains the parameters for CreateNetworkAcl. * @return Result of the CreateNetworkAcl operation returned by the service. * @sample AmazonEC2.CreateNetworkAcl * @see AWS API * Documentation */ @Override public CreateNetworkAclResult createNetworkAcl(CreateNetworkAclRequest createNetworkAclRequest) { ExecutionContext executionContext = createExecutionContext(createNetworkAclRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new CreateNetworkAclResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* 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. *

*

* 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. *

*

* After you add an entry, you can't modify it; you must either replace it, or create an entry and delete the old * one. *

*

* For more information about network ACLs, see Network ACLs in the Amazon * Virtual Private Cloud User Guide. *

* * @param createNetworkAclEntryRequest * Contains the parameters for CreateNetworkAclEntry. * @return Result of the CreateNetworkAclEntry operation returned by the service. * @sample AmazonEC2.CreateNetworkAclEntry * @see AWS API * Documentation */ @Override public CreateNetworkAclEntryResult createNetworkAclEntry(CreateNetworkAclEntryRequest createNetworkAclEntryRequest) { ExecutionContext executionContext = createExecutionContext(createNetworkAclEntryRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new CreateNetworkAclEntryResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Creates a network interface in the specified subnet. *

*

* For more information about network interfaces, see Elastic Network Interfaces in the * Amazon Virtual Private Cloud User Guide. *

* * @param createNetworkInterfaceRequest * Contains the parameters for CreateNetworkInterface. * @return Result of the CreateNetworkInterface operation returned by the service. * @sample AmazonEC2.CreateNetworkInterface * @see AWS API * Documentation */ @Override public CreateNetworkInterfaceResult createNetworkInterface(CreateNetworkInterfaceRequest createNetworkInterfaceRequest) { ExecutionContext executionContext = createExecutionContext(createNetworkInterfaceRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new CreateNetworkInterfaceResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* 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. *

*

* For more information about placement groups and cluster instances, see Cluster Instances in * the Amazon Elastic Compute Cloud User Guide. *

* * @param createPlacementGroupRequest * Contains the parameters for CreatePlacementGroup. * @return Result of the CreatePlacementGroup operation returned by the service. * @sample AmazonEC2.CreatePlacementGroup * @see AWS API * Documentation */ @Override public CreatePlacementGroupResult createPlacementGroup(CreatePlacementGroupRequest createPlacementGroupRequest) { ExecutionContext executionContext = createExecutionContext(createPlacementGroupRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new CreatePlacementGroupResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* 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 DescribeReservedInstances operation. *

* *

* 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. *

*
*

* 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. *

*

* 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 DescribeReservedInstancesListings operation. *

*

* For more information, see Reserved Instance * Marketplace in the Amazon Elastic Compute Cloud User Guide. *

* * @param createReservedInstancesListingRequest * Contains the parameters for CreateReservedInstancesListing. * @return Result of the CreateReservedInstancesListing operation returned by the service. * @sample AmazonEC2.CreateReservedInstancesListing * @see AWS API Documentation */ @Override public CreateReservedInstancesListingResult createReservedInstancesListing(CreateReservedInstancesListingRequest createReservedInstancesListingRequest) { ExecutionContext executionContext = createExecutionContext(createReservedInstancesListingRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new CreateReservedInstancesListingResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Creates a route in a route table within a VPC. *

*

* 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. *

*

* When determining how to route traffic, we use the route with the most specific match. For example, traffic is * destined for the IPv4 address 192.0.2.3, and the route table includes the following two IPv4 routes: *

*
    *
  • *

    * 192.0.2.0/24 (goes to some target A) *

    *
  • *
  • *

    * 192.0.2.0/28 (goes to some target B) *

    *
  • *
*

* Both routes apply to the traffic destined for 192.0.2.3. 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. *

*

* For more information about route tables, see Route Tables in the * Amazon Virtual Private Cloud User Guide. *

* * @param createRouteRequest * Contains the parameters for CreateRoute. * @return Result of the CreateRoute operation returned by the service. * @sample AmazonEC2.CreateRoute * @see AWS API * Documentation */ @Override public CreateRouteResult createRoute(CreateRouteRequest createRouteRequest) { ExecutionContext executionContext = createExecutionContext(createRouteRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler(new CreateRouteResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* 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. *

*

* For more information about route tables, see Route Tables in the * Amazon Virtual Private Cloud User Guide. *

* * @param createRouteTableRequest * Contains the parameters for CreateRouteTable. * @return Result of the CreateRouteTable operation returned by the service. * @sample AmazonEC2.CreateRouteTable * @see AWS API * Documentation */ @Override public CreateRouteTableResult createRouteTable(CreateRouteTableRequest createRouteTableRequest) { ExecutionContext executionContext = createExecutionContext(createRouteTableRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new CreateRouteTableResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Creates a security group. *

*

* A security group is for use with instances either in the EC2-Classic platform or in a specific VPC. For more * information, see Amazon * EC2 Security Groups in the Amazon Elastic Compute Cloud User Guide and Security Groups for Your * VPC in the Amazon Virtual Private Cloud User Guide. *

* *

* EC2-Classic: You can have up to 500 security groups. *

*

* EC2-VPC: You can create up to 500 security groups per VPC. *

*
*

* 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. *

*

* 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. *

*

* You can add or remove rules from your security groups using AuthorizeSecurityGroupIngress, * AuthorizeSecurityGroupEgress, RevokeSecurityGroupIngress, and RevokeSecurityGroupEgress. *

* * @param createSecurityGroupRequest * Contains the parameters for CreateSecurityGroup. * @return Result of the CreateSecurityGroup operation returned by the service. * @sample AmazonEC2.CreateSecurityGroup * @see AWS API * Documentation */ @Override public CreateSecurityGroupResult createSecurityGroup(CreateSecurityGroupRequest createSecurityGroupRequest) { ExecutionContext executionContext = createExecutionContext(createSecurityGroupRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new CreateSecurityGroupResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* 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. *

*

* When a snapshot is created, any AWS Marketplace product codes that are associated with the source volume are * propagated to the snapshot. *

*

* 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 * pending. *

*

* To create a snapshot for EBS volumes that serve as root devices, you should stop the instance before taking the * snapshot. *

*

* 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. *

*

* For more information, see Amazon * Elastic Block Store and Amazon EBS Encryption in the * Amazon Elastic Compute Cloud User Guide. *

* * @param createSnapshotRequest * Contains the parameters for CreateSnapshot. * @return Result of the CreateSnapshot operation returned by the service. * @sample AmazonEC2.CreateSnapshot * @see AWS API * Documentation */ @Override public CreateSnapshotResult createSnapshot(CreateSnapshotRequest createSnapshotRequest) { ExecutionContext executionContext = createExecutionContext(createSnapshotRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new CreateSnapshotResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* 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 Spot Instance Data Feed in the * Amazon Elastic Compute Cloud User Guide. *

* * @param createSpotDatafeedSubscriptionRequest * Contains the parameters for CreateSpotDatafeedSubscription. * @return Result of the CreateSpotDatafeedSubscription operation returned by the service. * @sample AmazonEC2.CreateSpotDatafeedSubscription * @see AWS API Documentation */ @Override public CreateSpotDatafeedSubscriptionResult createSpotDatafeedSubscription(CreateSpotDatafeedSubscriptionRequest createSpotDatafeedSubscriptionRequest) { ExecutionContext executionContext = createExecutionContext(createSpotDatafeedSubscriptionRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new CreateSpotDatafeedSubscriptionResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Creates a subnet in an existing VPC. *

*

* 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). *

*

* 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. *

* *

* AWS reserves both the first four and the last IP address in each subnet's CIDR block. They're not available for * use. *

*
*

* 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. *

*

* 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. *

*

* For more information about subnets, see Your VPC and Subnets in the * Amazon Virtual Private Cloud User Guide. *

* * @param createSubnetRequest * Contains the parameters for CreateSubnet. * @return Result of the CreateSubnet operation returned by the service. * @sample AmazonEC2.CreateSubnet * @see AWS API * Documentation */ @Override public CreateSubnetResult createSubnet(CreateSubnetRequest createSubnetRequest) { ExecutionContext executionContext = createExecutionContext(createSubnetRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler(new CreateSubnetResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* 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. *

*

* For more information about tags, see Tagging Your Resources in the * Amazon Elastic Compute Cloud User Guide. For more information about creating IAM policies that control * users' access to resources based on tags, see Supported * Resource-Level Permissions for Amazon EC2 API Actions in the Amazon Elastic Compute Cloud User Guide. *

* * @param createTagsRequest * Contains the parameters for CreateTags. * @return Result of the CreateTags operation returned by the service. * @sample AmazonEC2.CreateTags * @see AWS API * Documentation */ @Override public CreateTagsResult createTags(CreateTagsRequest createTagsRequest) { ExecutionContext executionContext = createExecutionContext(createTagsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler(new CreateTagsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* 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 Regions and Endpoints. *

*

* 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. *

*

* You can create encrypted volumes with the Encrypted 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 Amazon EBS Encryption in the * Amazon Elastic Compute Cloud User Guide. *

*

* For more information, see Creating or Restoring an * Amazon EBS Volume in the Amazon Elastic Compute Cloud User Guide. *

* * @param createVolumeRequest * Contains the parameters for CreateVolume. * @return Result of the CreateVolume operation returned by the service. * @sample AmazonEC2.CreateVolume * @see AWS API * Documentation */ @Override public CreateVolumeResult createVolume(CreateVolumeRequest createVolumeRequest) { ExecutionContext executionContext = createExecutionContext(createVolumeRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler(new CreateVolumeResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* 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 Your VPC and * Subnets in the Amazon Virtual Private Cloud User Guide. *

*

* 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. *

*

* 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 DHCP Options Sets in the * Amazon Virtual Private Cloud User Guide. *

*

* 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 Dedicated Instances in the * Amazon Elastic Compute Cloud User Guide. *

* * @param createVpcRequest * Contains the parameters for CreateVpc. * @return Result of the CreateVpc operation returned by the service. * @sample AmazonEC2.CreateVpc * @see AWS API * Documentation */ @Override public CreateVpcResult createVpc(CreateVpcRequest createVpcRequest) { ExecutionContext executionContext = createExecutionContext(createVpcRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler(new CreateVpcResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* 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. *

*

* Use DescribeVpcEndpointServices to get a list of supported AWS services. *

* * @param createVpcEndpointRequest * Contains the parameters for CreateVpcEndpoint. * @return Result of the CreateVpcEndpoint operation returned by the service. * @sample AmazonEC2.CreateVpcEndpoint * @see AWS API * Documentation */ @Override public CreateVpcEndpointResult createVpcEndpoint(CreateVpcEndpointRequest createVpcEndpointRequest) { ExecutionContext executionContext = createExecutionContext(createVpcEndpointRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new CreateVpcEndpointResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* 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. *

*

* 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. *

*

* A CreateVpcPeeringConnection request between VPCs with overlapping CIDR blocks results in the VPC * peering connection having a status of failed. *

* * @param createVpcPeeringConnectionRequest * Contains the parameters for CreateVpcPeeringConnection. * @return Result of the CreateVpcPeeringConnection operation returned by the service. * @sample AmazonEC2.CreateVpcPeeringConnection * @see AWS * API Documentation */ @Override public CreateVpcPeeringConnectionResult createVpcPeeringConnection(CreateVpcPeeringConnectionRequest createVpcPeeringConnectionRequest) { ExecutionContext executionContext = createExecutionContext(createVpcPeeringConnectionRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new CreateVpcPeeringConnectionResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public CreateVpcPeeringConnectionResult createVpcPeeringConnection() { return createVpcPeeringConnection(new CreateVpcPeeringConnectionRequest()); } /** *

* Creates a VPN connection between an existing virtual private gateway and a VPN customer gateway. The only * supported connection type is ipsec.1. *

*

* The response includes information that you need to give to your network administrator to configure your customer * gateway. *

* *

* We strongly recommend that you use HTTPS when calling this operation because the response contains sensitive * cryptographic information for configuring your customer gateway. *

*
*

* 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. *

*

* This is an idempotent operation. If you perform the operation more than once, Amazon EC2 doesn't return an error. *

*

* For more information about VPN connections, see Adding a Hardware Virtual Private * Gateway to Your VPC in the Amazon Virtual Private Cloud User Guide. *

* * @param createVpnConnectionRequest * Contains the parameters for CreateVpnConnection. * @return Result of the CreateVpnConnection operation returned by the service. * @sample AmazonEC2.CreateVpnConnection * @see AWS API * Documentation */ @Override public CreateVpnConnectionResult createVpnConnection(CreateVpnConnectionRequest createVpnConnectionRequest) { ExecutionContext executionContext = createExecutionContext(createVpnConnectionRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new CreateVpnConnectionResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* 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. *

*

* For more information about VPN connections, see Adding a Hardware Virtual Private * Gateway to Your VPC in the Amazon Virtual Private Cloud User Guide. *

* * @param createVpnConnectionRouteRequest * Contains the parameters for CreateVpnConnectionRoute. * @return Result of the CreateVpnConnectionRoute operation returned by the service. * @sample AmazonEC2.CreateVpnConnectionRoute * @see AWS * API Documentation */ @Override public CreateVpnConnectionRouteResult createVpnConnectionRoute(CreateVpnConnectionRouteRequest createVpnConnectionRouteRequest) { ExecutionContext executionContext = createExecutionContext(createVpnConnectionRouteRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new CreateVpnConnectionRouteResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* 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. *

*

* For more information about virtual private gateways, see Adding a Hardware Virtual Private * Gateway to Your VPC in the Amazon Virtual Private Cloud User Guide. *

* * @param createVpnGatewayRequest * Contains the parameters for CreateVpnGateway. * @return Result of the CreateVpnGateway operation returned by the service. * @sample AmazonEC2.CreateVpnGateway * @see AWS API * Documentation */ @Override public CreateVpnGatewayResult createVpnGateway(CreateVpnGatewayRequest createVpnGatewayRequest) { ExecutionContext executionContext = createExecutionContext(createVpnGatewayRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new CreateVpnGatewayResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deletes the specified customer gateway. You must delete the VPN connection before you can delete the customer * gateway. *

* * @param deleteCustomerGatewayRequest * Contains the parameters for DeleteCustomerGateway. * @return Result of the DeleteCustomerGateway operation returned by the service. * @sample AmazonEC2.DeleteCustomerGateway * @see AWS API * Documentation */ @Override public DeleteCustomerGatewayResult deleteCustomerGateway(DeleteCustomerGatewayRequest deleteCustomerGatewayRequest) { ExecutionContext executionContext = createExecutionContext(deleteCustomerGatewayRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DeleteCustomerGatewayResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* 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. *

* * @param deleteDhcpOptionsRequest * Contains the parameters for DeleteDhcpOptions. * @return Result of the DeleteDhcpOptions operation returned by the service. * @sample AmazonEC2.DeleteDhcpOptions * @see AWS API * Documentation */ @Override public DeleteDhcpOptionsResult deleteDhcpOptions(DeleteDhcpOptionsRequest deleteDhcpOptionsRequest) { ExecutionContext executionContext = createExecutionContext(deleteDhcpOptionsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DeleteDhcpOptionsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deletes an egress-only Internet gateway. *

* * @param deleteEgressOnlyInternetGatewayRequest * @return Result of the DeleteEgressOnlyInternetGateway operation returned by the service. * @sample AmazonEC2.DeleteEgressOnlyInternetGateway * @see AWS API Documentation */ @Override public DeleteEgressOnlyInternetGatewayResult deleteEgressOnlyInternetGateway(DeleteEgressOnlyInternetGatewayRequest deleteEgressOnlyInternetGatewayRequest) { ExecutionContext executionContext = createExecutionContext(deleteEgressOnlyInternetGatewayRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DeleteEgressOnlyInternetGatewayResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deletes one or more flow logs. *

* * @param deleteFlowLogsRequest * Contains the parameters for DeleteFlowLogs. * @return Result of the DeleteFlowLogs operation returned by the service. * @sample AmazonEC2.DeleteFlowLogs * @see AWS API * Documentation */ @Override public DeleteFlowLogsResult deleteFlowLogs(DeleteFlowLogsRequest deleteFlowLogsRequest) { ExecutionContext executionContext = createExecutionContext(deleteFlowLogsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DeleteFlowLogsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deletes the specified Internet gateway. You must detach the Internet gateway from the VPC before you can delete * it. *

* * @param deleteInternetGatewayRequest * Contains the parameters for DeleteInternetGateway. * @return Result of the DeleteInternetGateway operation returned by the service. * @sample AmazonEC2.DeleteInternetGateway * @see AWS API * Documentation */ @Override public DeleteInternetGatewayResult deleteInternetGateway(DeleteInternetGatewayRequest deleteInternetGatewayRequest) { ExecutionContext executionContext = createExecutionContext(deleteInternetGatewayRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DeleteInternetGatewayResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deletes the specified key pair, by removing the public key from Amazon EC2. *

* * @param deleteKeyPairRequest * Contains the parameters for DeleteKeyPair. * @return Result of the DeleteKeyPair operation returned by the service. * @sample AmazonEC2.DeleteKeyPair * @see AWS API * Documentation */ @Override public DeleteKeyPairResult deleteKeyPair(DeleteKeyPairRequest deleteKeyPairRequest) { ExecutionContext executionContext = createExecutionContext(deleteKeyPairRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler(new DeleteKeyPairResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* 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. *

* * @param deleteNatGatewayRequest * Contains the parameters for DeleteNatGateway. * @return Result of the DeleteNatGateway operation returned by the service. * @sample AmazonEC2.DeleteNatGateway * @see AWS API * Documentation */ @Override public DeleteNatGatewayResult deleteNatGateway(DeleteNatGatewayRequest deleteNatGatewayRequest) { ExecutionContext executionContext = createExecutionContext(deleteNatGatewayRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DeleteNatGatewayResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* 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. *

* * @param deleteNetworkAclRequest * Contains the parameters for DeleteNetworkAcl. * @return Result of the DeleteNetworkAcl operation returned by the service. * @sample AmazonEC2.DeleteNetworkAcl * @see AWS API * Documentation */ @Override public DeleteNetworkAclResult deleteNetworkAcl(DeleteNetworkAclRequest deleteNetworkAclRequest) { ExecutionContext executionContext = createExecutionContext(deleteNetworkAclRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DeleteNetworkAclResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deletes the specified ingress or egress entry (rule) from the specified network ACL. *

* * @param deleteNetworkAclEntryRequest * Contains the parameters for DeleteNetworkAclEntry. * @return Result of the DeleteNetworkAclEntry operation returned by the service. * @sample AmazonEC2.DeleteNetworkAclEntry * @see AWS API * Documentation */ @Override public DeleteNetworkAclEntryResult deleteNetworkAclEntry(DeleteNetworkAclEntryRequest deleteNetworkAclEntryRequest) { ExecutionContext executionContext = createExecutionContext(deleteNetworkAclEntryRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DeleteNetworkAclEntryResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deletes the specified network interface. You must detach the network interface before you can delete it. *

* * @param deleteNetworkInterfaceRequest * Contains the parameters for DeleteNetworkInterface. * @return Result of the DeleteNetworkInterface operation returned by the service. * @sample AmazonEC2.DeleteNetworkInterface * @see AWS API * Documentation */ @Override public DeleteNetworkInterfaceResult deleteNetworkInterface(DeleteNetworkInterfaceRequest deleteNetworkInterfaceRequest) { ExecutionContext executionContext = createExecutionContext(deleteNetworkInterfaceRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DeleteNetworkInterfaceResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* 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 Cluster Instances in * the Amazon Elastic Compute Cloud User Guide. *

* * @param deletePlacementGroupRequest * Contains the parameters for DeletePlacementGroup. * @return Result of the DeletePlacementGroup operation returned by the service. * @sample AmazonEC2.DeletePlacementGroup * @see AWS API * Documentation */ @Override public DeletePlacementGroupResult deletePlacementGroup(DeletePlacementGroupRequest deletePlacementGroupRequest) { ExecutionContext executionContext = createExecutionContext(deletePlacementGroupRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DeletePlacementGroupResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deletes the specified route from the specified route table. *

* * @param deleteRouteRequest * Contains the parameters for DeleteRoute. * @return Result of the DeleteRoute operation returned by the service. * @sample AmazonEC2.DeleteRoute * @see AWS API * Documentation */ @Override public DeleteRouteResult deleteRoute(DeleteRouteRequest deleteRouteRequest) { ExecutionContext executionContext = createExecutionContext(deleteRouteRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler(new DeleteRouteResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* 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. *

* * @param deleteRouteTableRequest * Contains the parameters for DeleteRouteTable. * @return Result of the DeleteRouteTable operation returned by the service. * @sample AmazonEC2.DeleteRouteTable * @see AWS API * Documentation */ @Override public DeleteRouteTableResult deleteRouteTable(DeleteRouteTableRequest deleteRouteTableRequest) { ExecutionContext executionContext = createExecutionContext(deleteRouteTableRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DeleteRouteTableResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deletes a security group. *

*

* 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 InvalidGroup.InUse in EC2-Classic or * DependencyViolation in EC2-VPC. *

* * @param deleteSecurityGroupRequest * Contains the parameters for DeleteSecurityGroup. * @return Result of the DeleteSecurityGroup operation returned by the service. * @sample AmazonEC2.DeleteSecurityGroup * @see AWS API * Documentation */ @Override public DeleteSecurityGroupResult deleteSecurityGroup(DeleteSecurityGroupRequest deleteSecurityGroupRequest) { ExecutionContext executionContext = createExecutionContext(deleteSecurityGroupRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DeleteSecurityGroupResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deletes the specified snapshot. *

*

* 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. *

*

* 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. *

*

* For more information, see Deleting an Amazon EBS * Snapshot in the Amazon Elastic Compute Cloud User Guide. *

* * @param deleteSnapshotRequest * Contains the parameters for DeleteSnapshot. * @return Result of the DeleteSnapshot operation returned by the service. * @sample AmazonEC2.DeleteSnapshot * @see AWS API * Documentation */ @Override public DeleteSnapshotResult deleteSnapshot(DeleteSnapshotRequest deleteSnapshotRequest) { ExecutionContext executionContext = createExecutionContext(deleteSnapshotRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DeleteSnapshotResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deletes the data feed for Spot instances. *

* * @param deleteSpotDatafeedSubscriptionRequest * Contains the parameters for DeleteSpotDatafeedSubscription. * @return Result of the DeleteSpotDatafeedSubscription operation returned by the service. * @sample AmazonEC2.DeleteSpotDatafeedSubscription * @see AWS API Documentation */ @Override public DeleteSpotDatafeedSubscriptionResult deleteSpotDatafeedSubscription(DeleteSpotDatafeedSubscriptionRequest deleteSpotDatafeedSubscriptionRequest) { ExecutionContext executionContext = createExecutionContext(deleteSpotDatafeedSubscriptionRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DeleteSpotDatafeedSubscriptionResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DeleteSpotDatafeedSubscriptionResult deleteSpotDatafeedSubscription() { return deleteSpotDatafeedSubscription(new DeleteSpotDatafeedSubscriptionRequest()); } /** *

* Deletes the specified subnet. You must terminate all running instances in the subnet before you can delete the * subnet. *

* * @param deleteSubnetRequest * Contains the parameters for DeleteSubnet. * @return Result of the DeleteSubnet operation returned by the service. * @sample AmazonEC2.DeleteSubnet * @see AWS API * Documentation */ @Override public DeleteSubnetResult deleteSubnet(DeleteSubnetRequest deleteSubnetRequest) { ExecutionContext executionContext = createExecutionContext(deleteSubnetRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler(new DeleteSubnetResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deletes the specified set of tags from the specified set of resources. This call is designed to follow a * DescribeTags request. *

*

* For more information about tags, see Tagging Your Resources in the * Amazon Elastic Compute Cloud User Guide. *

* * @param deleteTagsRequest * Contains the parameters for DeleteTags. * @return Result of the DeleteTags operation returned by the service. * @sample AmazonEC2.DeleteTags * @see AWS API * Documentation */ @Override public DeleteTagsResult deleteTags(DeleteTagsRequest deleteTagsRequest) { ExecutionContext executionContext = createExecutionContext(deleteTagsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler(new DeleteTagsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deletes the specified EBS volume. The volume must be in the available state (not attached to an * instance). *

* *

* The volume may remain in the deleting state for several minutes. *

*
*

* For more information, see Deleting an Amazon EBS * Volume in the Amazon Elastic Compute Cloud User Guide. *

* * @param deleteVolumeRequest * Contains the parameters for DeleteVolume. * @return Result of the DeleteVolume operation returned by the service. * @sample AmazonEC2.DeleteVolume * @see AWS API * Documentation */ @Override public DeleteVolumeResult deleteVolume(DeleteVolumeRequest deleteVolumeRequest) { ExecutionContext executionContext = createExecutionContext(deleteVolumeRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler(new DeleteVolumeResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* 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. *

* * @param deleteVpcRequest * Contains the parameters for DeleteVpc. * @return Result of the DeleteVpc operation returned by the service. * @sample AmazonEC2.DeleteVpc * @see AWS API * Documentation */ @Override public DeleteVpcResult deleteVpc(DeleteVpcRequest deleteVpcRequest) { ExecutionContext executionContext = createExecutionContext(deleteVpcRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler(new DeleteVpcResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* 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. *

* * @param deleteVpcEndpointsRequest * Contains the parameters for DeleteVpcEndpoints. * @return Result of the DeleteVpcEndpoints operation returned by the service. * @sample AmazonEC2.DeleteVpcEndpoints * @see AWS API * Documentation */ @Override public DeleteVpcEndpointsResult deleteVpcEndpoints(DeleteVpcEndpointsRequest deleteVpcEndpointsRequest) { ExecutionContext executionContext = createExecutionContext(deleteVpcEndpointsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DeleteVpcEndpointsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* 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 active state. The owner of the requester VPC can delete a * VPC peering connection in the pending-acceptance state. *

* * @param deleteVpcPeeringConnectionRequest * Contains the parameters for DeleteVpcPeeringConnection. * @return Result of the DeleteVpcPeeringConnection operation returned by the service. * @sample AmazonEC2.DeleteVpcPeeringConnection * @see AWS * API Documentation */ @Override public DeleteVpcPeeringConnectionResult deleteVpcPeeringConnection(DeleteVpcPeeringConnectionRequest deleteVpcPeeringConnectionRequest) { ExecutionContext executionContext = createExecutionContext(deleteVpcPeeringConnectionRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DeleteVpcPeeringConnectionResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deletes the specified VPN connection. *

*

* 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. *

* * @param deleteVpnConnectionRequest * Contains the parameters for DeleteVpnConnection. * @return Result of the DeleteVpnConnection operation returned by the service. * @sample AmazonEC2.DeleteVpnConnection * @see AWS API * Documentation */ @Override public DeleteVpnConnectionResult deleteVpnConnection(DeleteVpnConnectionRequest deleteVpnConnectionRequest) { ExecutionContext executionContext = createExecutionContext(deleteVpnConnectionRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DeleteVpnConnectionResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* 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. *

* * @param deleteVpnConnectionRouteRequest * Contains the parameters for DeleteVpnConnectionRoute. * @return Result of the DeleteVpnConnectionRoute operation returned by the service. * @sample AmazonEC2.DeleteVpnConnectionRoute * @see AWS * API Documentation */ @Override public DeleteVpnConnectionRouteResult deleteVpnConnectionRoute(DeleteVpnConnectionRouteRequest deleteVpnConnectionRouteRequest) { ExecutionContext executionContext = createExecutionContext(deleteVpnConnectionRouteRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DeleteVpnConnectionRouteResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* 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. *

* * @param deleteVpnGatewayRequest * Contains the parameters for DeleteVpnGateway. * @return Result of the DeleteVpnGateway operation returned by the service. * @sample AmazonEC2.DeleteVpnGateway * @see AWS API * Documentation */ @Override public DeleteVpnGatewayResult deleteVpnGateway(DeleteVpnGatewayRequest deleteVpnGatewayRequest) { ExecutionContext executionContext = createExecutionContext(deleteVpnGatewayRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DeleteVpnGatewayResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deregisters the specified AMI. After you deregister an AMI, it can't be used to launch new instances. *

*

* This command does not delete the AMI. *

* * @param deregisterImageRequest * Contains the parameters for DeregisterImage. * @return Result of the DeregisterImage operation returned by the service. * @sample AmazonEC2.DeregisterImage * @see AWS API * Documentation */ @Override public DeregisterImageResult deregisterImage(DeregisterImageRequest deregisterImageRequest) { ExecutionContext executionContext = createExecutionContext(deregisterImageRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DeregisterImageResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Describes attributes of your AWS account. The following are the supported account attributes: *

*
    *
  • *

    * supported-platforms: Indicates whether your account can launch instances into EC2-Classic and * EC2-VPC, or only into EC2-VPC. *

    *
  • *
  • *

    * default-vpc: The ID of the default VPC for your account, or none. *

    *
  • *
  • *

    * max-instances: The maximum number of On-Demand instances that you can run. *

    *
  • *
  • *

    * vpc-max-security-groups-per-interface: The maximum number of security groups that you can assign to * a network interface. *

    *
  • *
  • *

    * max-elastic-ips: The maximum number of Elastic IP addresses that you can allocate for use with * EC2-Classic. *

    *
  • *
  • *

    * vpc-max-elastic-ips: The maximum number of Elastic IP addresses that you can allocate for use with * EC2-VPC. *

    *
  • *
* * @param describeAccountAttributesRequest * Contains the parameters for DescribeAccountAttributes. * @return Result of the DescribeAccountAttributes operation returned by the service. * @sample AmazonEC2.DescribeAccountAttributes * @see AWS * API Documentation */ @Override public DescribeAccountAttributesResult describeAccountAttributes(DescribeAccountAttributesRequest describeAccountAttributesRequest) { ExecutionContext executionContext = createExecutionContext(describeAccountAttributesRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DescribeAccountAttributesResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeAccountAttributesResult describeAccountAttributes() { return describeAccountAttributes(new DescribeAccountAttributesRequest()); } /** *

* Describes one or more of your Elastic IP addresses. *

*

* An Elastic IP address is for use in either the EC2-Classic platform or in a VPC. For more information, see Elastic IP Addresses * in the Amazon Elastic Compute Cloud User Guide. *

* * @param describeAddressesRequest * Contains the parameters for DescribeAddresses. * @return Result of the DescribeAddresses operation returned by the service. * @sample AmazonEC2.DescribeAddresses * @see AWS API * Documentation */ @Override public DescribeAddressesResult describeAddresses(DescribeAddressesRequest describeAddressesRequest) { ExecutionContext executionContext = createExecutionContext(describeAddressesRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DescribeAddressesResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeAddressesResult describeAddresses() { return describeAddresses(new DescribeAddressesRequest()); } /** *

* 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. *

*

* For more information, see Regions and * Availability Zones in the Amazon Elastic Compute Cloud User Guide. *

* * @param describeAvailabilityZonesRequest * Contains the parameters for DescribeAvailabilityZones. * @return Result of the DescribeAvailabilityZones operation returned by the service. * @sample AmazonEC2.DescribeAvailabilityZones * @see AWS * API Documentation */ @Override public DescribeAvailabilityZonesResult describeAvailabilityZones(DescribeAvailabilityZonesRequest describeAvailabilityZonesRequest) { ExecutionContext executionContext = createExecutionContext(describeAvailabilityZonesRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DescribeAvailabilityZonesResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeAvailabilityZonesResult describeAvailabilityZones() { return describeAvailabilityZones(new DescribeAvailabilityZonesRequest()); } /** *

* Describes one or more of your bundling tasks. *

* *

* 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 RegisterImage with the Amazon S3 bucket name and image * manifest name you provided to the bundle task. *

*
* * @param describeBundleTasksRequest * Contains the parameters for DescribeBundleTasks. * @return Result of the DescribeBundleTasks operation returned by the service. * @sample AmazonEC2.DescribeBundleTasks * @see AWS API * Documentation */ @Override public DescribeBundleTasksResult describeBundleTasks(DescribeBundleTasksRequest describeBundleTasksRequest) { ExecutionContext executionContext = createExecutionContext(describeBundleTasksRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DescribeBundleTasksResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeBundleTasksResult describeBundleTasks() { return describeBundleTasks(new DescribeBundleTasksRequest()); } /** *

* 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. *

* * @param describeClassicLinkInstancesRequest * Contains the parameters for DescribeClassicLinkInstances. * @return Result of the DescribeClassicLinkInstances operation returned by the service. * @sample AmazonEC2.DescribeClassicLinkInstances * @see AWS API Documentation */ @Override public DescribeClassicLinkInstancesResult describeClassicLinkInstances(DescribeClassicLinkInstancesRequest describeClassicLinkInstancesRequest) { ExecutionContext executionContext = createExecutionContext(describeClassicLinkInstancesRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DescribeClassicLinkInstancesResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeClassicLinkInstancesResult describeClassicLinkInstances() { return describeClassicLinkInstances(new DescribeClassicLinkInstancesRequest()); } /** *

* Describes one or more of your conversion tasks. For more information, see the VM Import/Export User Guide. *

*

* For information about the import manifest referenced by this API action, see VM Import Manifest. *

* * @param describeConversionTasksRequest * Contains the parameters for DescribeConversionTasks. * @return Result of the DescribeConversionTasks operation returned by the service. * @sample AmazonEC2.DescribeConversionTasks * @see AWS * API Documentation */ @Override public DescribeConversionTasksResult describeConversionTasks(DescribeConversionTasksRequest describeConversionTasksRequest) { ExecutionContext executionContext = createExecutionContext(describeConversionTasksRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DescribeConversionTasksResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeConversionTasksResult describeConversionTasks() { return describeConversionTasks(new DescribeConversionTasksRequest()); } /** *

* Describes one or more of your VPN customer gateways. *

*

* For more information about VPN customer gateways, see Adding a Hardware Virtual Private * Gateway to Your VPC in the Amazon Virtual Private Cloud User Guide. *

* * @param describeCustomerGatewaysRequest * Contains the parameters for DescribeCustomerGateways. * @return Result of the DescribeCustomerGateways operation returned by the service. * @sample AmazonEC2.DescribeCustomerGateways * @see AWS * API Documentation */ @Override public DescribeCustomerGatewaysResult describeCustomerGateways(DescribeCustomerGatewaysRequest describeCustomerGatewaysRequest) { ExecutionContext executionContext = createExecutionContext(describeCustomerGatewaysRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DescribeCustomerGatewaysResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeCustomerGatewaysResult describeCustomerGateways() { return describeCustomerGateways(new DescribeCustomerGatewaysRequest()); } /** *

* Describes one or more of your DHCP options sets. *

*

* For more information about DHCP options sets, see DHCP Options Sets in the * Amazon Virtual Private Cloud User Guide. *

* * @param describeDhcpOptionsRequest * Contains the parameters for DescribeDhcpOptions. * @return Result of the DescribeDhcpOptions operation returned by the service. * @sample AmazonEC2.DescribeDhcpOptions * @see AWS API * Documentation */ @Override public DescribeDhcpOptionsResult describeDhcpOptions(DescribeDhcpOptionsRequest describeDhcpOptionsRequest) { ExecutionContext executionContext = createExecutionContext(describeDhcpOptionsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DescribeDhcpOptionsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeDhcpOptionsResult describeDhcpOptions() { return describeDhcpOptions(new DescribeDhcpOptionsRequest()); } /** *

* Describes one or more of your egress-only Internet gateways. *

* * @param describeEgressOnlyInternetGatewaysRequest * @return Result of the DescribeEgressOnlyInternetGateways operation returned by the service. * @sample AmazonEC2.DescribeEgressOnlyInternetGateways * @see AWS API Documentation */ @Override public DescribeEgressOnlyInternetGatewaysResult describeEgressOnlyInternetGateways( DescribeEgressOnlyInternetGatewaysRequest describeEgressOnlyInternetGatewaysRequest) { ExecutionContext executionContext = createExecutionContext(describeEgressOnlyInternetGatewaysRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DescribeEgressOnlyInternetGatewaysResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Describes one or more of your export tasks. *

* * @param describeExportTasksRequest * Contains the parameters for DescribeExportTasks. * @return Result of the DescribeExportTasks operation returned by the service. * @sample AmazonEC2.DescribeExportTasks * @see AWS API * Documentation */ @Override public DescribeExportTasksResult describeExportTasks(DescribeExportTasksRequest describeExportTasksRequest) { ExecutionContext executionContext = createExecutionContext(describeExportTasksRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DescribeExportTasksResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeExportTasksResult describeExportTasks() { return describeExportTasks(new DescribeExportTasksRequest()); } /** *

* 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. *

* * @param describeFlowLogsRequest * Contains the parameters for DescribeFlowLogs. * @return Result of the DescribeFlowLogs operation returned by the service. * @sample AmazonEC2.DescribeFlowLogs * @see AWS API * Documentation */ @Override public DescribeFlowLogsResult describeFlowLogs(DescribeFlowLogsRequest describeFlowLogsRequest) { ExecutionContext executionContext = createExecutionContext(describeFlowLogsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DescribeFlowLogsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeFlowLogsResult describeFlowLogs() { return describeFlowLogs(new DescribeFlowLogsRequest()); } /** *

* Describes the Dedicated Host Reservations that are available to purchase. *

*

* 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 Dedicated Hosts * Overview in the Amazon Elastic Compute Cloud User Guide. *

* * @param describeHostReservationOfferingsRequest * @return Result of the DescribeHostReservationOfferings operation returned by the service. * @sample AmazonEC2.DescribeHostReservationOfferings * @see AWS API Documentation */ @Override public DescribeHostReservationOfferingsResult describeHostReservationOfferings( DescribeHostReservationOfferingsRequest describeHostReservationOfferingsRequest) { ExecutionContext executionContext = createExecutionContext(describeHostReservationOfferingsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DescribeHostReservationOfferingsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Describes Dedicated Host Reservations which are associated with Dedicated Hosts in your account. *

* * @param describeHostReservationsRequest * @return Result of the DescribeHostReservations operation returned by the service. * @sample AmazonEC2.DescribeHostReservations * @see AWS * API Documentation */ @Override public DescribeHostReservationsResult describeHostReservations(DescribeHostReservationsRequest describeHostReservationsRequest) { ExecutionContext executionContext = createExecutionContext(describeHostReservationsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DescribeHostReservationsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Describes one or more of your Dedicated Hosts. *

*

* 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 * released. *

* * @param describeHostsRequest * Contains the parameters for DescribeHosts. * @return Result of the DescribeHosts operation returned by the service. * @sample AmazonEC2.DescribeHosts * @see AWS API * Documentation */ @Override public DescribeHostsResult describeHosts(DescribeHostsRequest describeHostsRequest) { ExecutionContext executionContext = createExecutionContext(describeHostsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler(new DescribeHostsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeHostsResult describeHosts() { return describeHosts(new DescribeHostsRequest()); } /** *

* Describes your IAM instance profile associations. *

* * @param describeIamInstanceProfileAssociationsRequest * @return Result of the DescribeIamInstanceProfileAssociations operation returned by the service. * @sample AmazonEC2.DescribeIamInstanceProfileAssociations * @see AWS API Documentation */ @Override public DescribeIamInstanceProfileAssociationsResult describeIamInstanceProfileAssociations( DescribeIamInstanceProfileAssociationsRequest describeIamInstanceProfileAssociationsRequest) { ExecutionContext executionContext = createExecutionContext(describeIamInstanceProfileAssociationsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DescribeIamInstanceProfileAssociationsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* 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. *

*

* The following resource types support longer IDs: instance | reservation | * snapshot | volume. *

*

* 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 ModifyIdFormat 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 Describe * command for the resource type. *

* * @param describeIdFormatRequest * Contains the parameters for DescribeIdFormat. * @return Result of the DescribeIdFormat operation returned by the service. * @sample AmazonEC2.DescribeIdFormat * @see AWS API * Documentation */ @Override public DescribeIdFormatResult describeIdFormat(DescribeIdFormatRequest describeIdFormatRequest) { ExecutionContext executionContext = createExecutionContext(describeIdFormatRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DescribeIdFormatResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeIdFormatResult describeIdFormat() { return describeIdFormat(new DescribeIdFormatRequest()); } /** *

* 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 Resource * IDs in the Amazon Elastic Compute Cloud User Guide. *

*

* The following resource types support longer IDs: instance | reservation | * snapshot | volume. *

*

* These settings apply to the principal specified in the request. They do not apply to the principal that makes the * request. *

* * @param describeIdentityIdFormatRequest * Contains the parameters for DescribeIdentityIdFormat. * @return Result of the DescribeIdentityIdFormat operation returned by the service. * @sample AmazonEC2.DescribeIdentityIdFormat * @see AWS * API Documentation */ @Override public DescribeIdentityIdFormatResult describeIdentityIdFormat(DescribeIdentityIdFormatRequest describeIdentityIdFormatRequest) { ExecutionContext executionContext = createExecutionContext(describeIdentityIdFormatRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DescribeIdentityIdFormatResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Describes the specified attribute of the specified AMI. You can specify only one attribute at a time. *

* * @param describeImageAttributeRequest * Contains the parameters for DescribeImageAttribute. * @return Result of the DescribeImageAttribute operation returned by the service. * @sample AmazonEC2.DescribeImageAttribute * @see AWS API * Documentation */ @Override public DescribeImageAttributeResult describeImageAttribute(DescribeImageAttributeRequest describeImageAttributeRequest) { ExecutionContext executionContext = createExecutionContext(describeImageAttributeRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DescribeImageAttributeResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* 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. *

* *

* Deregistered images are included in the returned results for an unspecified interval after deregistration. *

*
* * @param describeImagesRequest * Contains the parameters for DescribeImages. * @return Result of the DescribeImages operation returned by the service. * @sample AmazonEC2.DescribeImages * @see AWS API * Documentation */ @Override public DescribeImagesResult describeImages(DescribeImagesRequest describeImagesRequest) { ExecutionContext executionContext = createExecutionContext(describeImagesRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DescribeImagesResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeImagesResult describeImages() { return describeImages(new DescribeImagesRequest()); } /** *

* Displays details about an import virtual machine or import snapshot tasks that are already created. *

* * @param describeImportImageTasksRequest * Contains the parameters for DescribeImportImageTasks. * @return Result of the DescribeImportImageTasks operation returned by the service. * @sample AmazonEC2.DescribeImportImageTasks * @see AWS * API Documentation */ @Override public DescribeImportImageTasksResult describeImportImageTasks(DescribeImportImageTasksRequest describeImportImageTasksRequest) { ExecutionContext executionContext = createExecutionContext(describeImportImageTasksRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DescribeImportImageTasksResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeImportImageTasksResult describeImportImageTasks() { return describeImportImageTasks(new DescribeImportImageTasksRequest()); } /** *

* Describes your import snapshot tasks. *

* * @param describeImportSnapshotTasksRequest * Contains the parameters for DescribeImportSnapshotTasks. * @return Result of the DescribeImportSnapshotTasks operation returned by the service. * @sample AmazonEC2.DescribeImportSnapshotTasks * @see AWS API Documentation */ @Override public DescribeImportSnapshotTasksResult describeImportSnapshotTasks(DescribeImportSnapshotTasksRequest describeImportSnapshotTasksRequest) { ExecutionContext executionContext = createExecutionContext(describeImportSnapshotTasksRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DescribeImportSnapshotTasksResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeImportSnapshotTasksResult describeImportSnapshotTasks() { return describeImportSnapshotTasks(new DescribeImportSnapshotTasksRequest()); } /** *

* Describes the specified attribute of the specified instance. You can specify only one attribute at a time. Valid * attribute values are: instanceType | kernel | ramdisk | * userData | disableApiTermination | instanceInitiatedShutdownBehavior | * rootDeviceName | blockDeviceMapping | productCodes | * sourceDestCheck | groupSet | ebsOptimized | sriovNetSupport *

* * @param describeInstanceAttributeRequest * Contains the parameters for DescribeInstanceAttribute. * @return Result of the DescribeInstanceAttribute operation returned by the service. * @sample AmazonEC2.DescribeInstanceAttribute * @see AWS * API Documentation */ @Override public DescribeInstanceAttributeResult describeInstanceAttribute(DescribeInstanceAttributeRequest describeInstanceAttributeRequest) { ExecutionContext executionContext = createExecutionContext(describeInstanceAttributeRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DescribeInstanceAttributeResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Describes the status of one or more instances. By default, only running instances are described, unless specified * otherwise. *

*

* Instance status includes the following components: *

*
    *
  • *

    * Status checks - Amazon EC2 performs status checks on running EC2 instances to identify hardware and * software issues. For more information, see Status * Checks for Your Instances and Troubleshooting Instances * with Failed Status Checks in the Amazon Elastic Compute Cloud User Guide. *

    *
  • *
  • *

    * Scheduled events - 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 Scheduled * Events for Your Instances in the Amazon Elastic Compute Cloud User Guide. *

    *
  • *
  • *

    * Instance state - You can manage your instances from the moment you launch them through their termination. * For more information, see Instance Lifecycle in * the Amazon Elastic Compute Cloud User Guide. *

    *
  • *
* * @param describeInstanceStatusRequest * Contains the parameters for DescribeInstanceStatus. * @return Result of the DescribeInstanceStatus operation returned by the service. * @sample AmazonEC2.DescribeInstanceStatus * @see AWS API * Documentation */ @Override public DescribeInstanceStatusResult describeInstanceStatus(DescribeInstanceStatusRequest describeInstanceStatusRequest) { ExecutionContext executionContext = createExecutionContext(describeInstanceStatusRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DescribeInstanceStatusResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeInstanceStatusResult describeInstanceStatus() { return describeInstanceStatus(new DescribeInstanceStatusRequest()); } /** *

* Describes one or more of your instances. *

*

* 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. *

*

* Recently terminated instances might appear in the returned results. This interval is usually less than one hour. *

*

* 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. *

* * @param describeInstancesRequest * Contains the parameters for DescribeInstances. * @return Result of the DescribeInstances operation returned by the service. * @sample AmazonEC2.DescribeInstances * @see AWS API * Documentation */ @Override public DescribeInstancesResult describeInstances(DescribeInstancesRequest describeInstancesRequest) { ExecutionContext executionContext = createExecutionContext(describeInstancesRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DescribeInstancesResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeInstancesResult describeInstances() { return describeInstances(new DescribeInstancesRequest()); } /** *

* Describes one or more of your Internet gateways. *

* * @param describeInternetGatewaysRequest * Contains the parameters for DescribeInternetGateways. * @return Result of the DescribeInternetGateways operation returned by the service. * @sample AmazonEC2.DescribeInternetGateways * @see AWS * API Documentation */ @Override public DescribeInternetGatewaysResult describeInternetGateways(DescribeInternetGatewaysRequest describeInternetGatewaysRequest) { ExecutionContext executionContext = createExecutionContext(describeInternetGatewaysRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DescribeInternetGatewaysResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeInternetGatewaysResult describeInternetGateways() { return describeInternetGateways(new DescribeInternetGatewaysRequest()); } /** *

* Describes one or more of your key pairs. *

*

* For more information about key pairs, see Key Pairs in the Amazon * Elastic Compute Cloud User Guide. *

* * @param describeKeyPairsRequest * Contains the parameters for DescribeKeyPairs. * @return Result of the DescribeKeyPairs operation returned by the service. * @sample AmazonEC2.DescribeKeyPairs * @see AWS API * Documentation */ @Override public DescribeKeyPairsResult describeKeyPairs(DescribeKeyPairsRequest describeKeyPairsRequest) { ExecutionContext executionContext = createExecutionContext(describeKeyPairsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DescribeKeyPairsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeKeyPairsResult describeKeyPairs() { return describeKeyPairs(new DescribeKeyPairsRequest()); } /** *

* 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. *

* * @param describeMovingAddressesRequest * Contains the parameters for DescribeMovingAddresses. * @return Result of the DescribeMovingAddresses operation returned by the service. * @sample AmazonEC2.DescribeMovingAddresses * @see AWS * API Documentation */ @Override public DescribeMovingAddressesResult describeMovingAddresses(DescribeMovingAddressesRequest describeMovingAddressesRequest) { ExecutionContext executionContext = createExecutionContext(describeMovingAddressesRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DescribeMovingAddressesResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeMovingAddressesResult describeMovingAddresses() { return describeMovingAddresses(new DescribeMovingAddressesRequest()); } /** *

* Describes one or more of the your NAT gateways. *

* * @param describeNatGatewaysRequest * Contains the parameters for DescribeNatGateways. * @return Result of the DescribeNatGateways operation returned by the service. * @sample AmazonEC2.DescribeNatGateways * @see AWS API * Documentation */ @Override public DescribeNatGatewaysResult describeNatGateways(DescribeNatGatewaysRequest describeNatGatewaysRequest) { ExecutionContext executionContext = createExecutionContext(describeNatGatewaysRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DescribeNatGatewaysResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Describes one or more of your network ACLs. *

*

* For more information about network ACLs, see Network ACLs in the Amazon * Virtual Private Cloud User Guide. *

* * @param describeNetworkAclsRequest * Contains the parameters for DescribeNetworkAcls. * @return Result of the DescribeNetworkAcls operation returned by the service. * @sample AmazonEC2.DescribeNetworkAcls * @see AWS API * Documentation */ @Override public DescribeNetworkAclsResult describeNetworkAcls(DescribeNetworkAclsRequest describeNetworkAclsRequest) { ExecutionContext executionContext = createExecutionContext(describeNetworkAclsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DescribeNetworkAclsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeNetworkAclsResult describeNetworkAcls() { return describeNetworkAcls(new DescribeNetworkAclsRequest()); } /** *

* Describes a network interface attribute. You can specify only one attribute at a time. *

* * @param describeNetworkInterfaceAttributeRequest * Contains the parameters for DescribeNetworkInterfaceAttribute. * @return Result of the DescribeNetworkInterfaceAttribute operation returned by the service. * @sample AmazonEC2.DescribeNetworkInterfaceAttribute * @see AWS API Documentation */ @Override public DescribeNetworkInterfaceAttributeResult describeNetworkInterfaceAttribute( DescribeNetworkInterfaceAttributeRequest describeNetworkInterfaceAttributeRequest) { ExecutionContext executionContext = createExecutionContext(describeNetworkInterfaceAttributeRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DescribeNetworkInterfaceAttributeResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Describes one or more of your network interfaces. *

* * @param describeNetworkInterfacesRequest * Contains the parameters for DescribeNetworkInterfaces. * @return Result of the DescribeNetworkInterfaces operation returned by the service. * @sample AmazonEC2.DescribeNetworkInterfaces * @see AWS * API Documentation */ @Override public DescribeNetworkInterfacesResult describeNetworkInterfaces(DescribeNetworkInterfacesRequest describeNetworkInterfacesRequest) { ExecutionContext executionContext = createExecutionContext(describeNetworkInterfacesRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DescribeNetworkInterfacesResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeNetworkInterfacesResult describeNetworkInterfaces() { return describeNetworkInterfaces(new DescribeNetworkInterfacesRequest()); } /** *

* Describes one or more of your placement groups. For more information about placement groups and cluster * instances, see Cluster * Instances in the Amazon Elastic Compute Cloud User Guide. *

* * @param describePlacementGroupsRequest * Contains the parameters for DescribePlacementGroups. * @return Result of the DescribePlacementGroups operation returned by the service. * @sample AmazonEC2.DescribePlacementGroups * @see AWS * API Documentation */ @Override public DescribePlacementGroupsResult describePlacementGroups(DescribePlacementGroupsRequest describePlacementGroupsRequest) { ExecutionContext executionContext = createExecutionContext(describePlacementGroupsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DescribePlacementGroupsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribePlacementGroupsResult describePlacementGroups() { return describePlacementGroups(new DescribePlacementGroupsRequest()); } /** *

* 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. *

* * @param describePrefixListsRequest * Contains the parameters for DescribePrefixLists. * @return Result of the DescribePrefixLists operation returned by the service. * @sample AmazonEC2.DescribePrefixLists * @see AWS API * Documentation */ @Override public DescribePrefixListsResult describePrefixLists(DescribePrefixListsRequest describePrefixListsRequest) { ExecutionContext executionContext = createExecutionContext(describePrefixListsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DescribePrefixListsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribePrefixListsResult describePrefixLists() { return describePrefixLists(new DescribePrefixListsRequest()); } /** *

* Describes one or more regions that are currently available to you. *

*

* For a list of the regions supported by Amazon EC2, see Regions and Endpoints. *

* * @param describeRegionsRequest * Contains the parameters for DescribeRegions. * @return Result of the DescribeRegions operation returned by the service. * @sample AmazonEC2.DescribeRegions * @see AWS API * Documentation */ @Override public DescribeRegionsResult describeRegions(DescribeRegionsRequest describeRegionsRequest) { ExecutionContext executionContext = createExecutionContext(describeRegionsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DescribeRegionsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeRegionsResult describeRegions() { return describeRegions(new DescribeRegionsRequest()); } /** *

* Describes one or more of the Reserved Instances that you purchased. *

*

* For more information about Reserved Instances, see Reserved * Instances in the Amazon Elastic Compute Cloud User Guide. *

* * @param describeReservedInstancesRequest * Contains the parameters for DescribeReservedInstances. * @return Result of the DescribeReservedInstances operation returned by the service. * @sample AmazonEC2.DescribeReservedInstances * @see AWS * API Documentation */ @Override public DescribeReservedInstancesResult describeReservedInstances(DescribeReservedInstancesRequest describeReservedInstancesRequest) { ExecutionContext executionContext = createExecutionContext(describeReservedInstancesRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DescribeReservedInstancesResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeReservedInstancesResult describeReservedInstances() { return describeReservedInstances(new DescribeReservedInstancesRequest()); } /** *

* Describes your account's Reserved Instance listings in the Reserved Instance Marketplace. *

*

* 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. *

*

* 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. *

*

* 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. *

*

* For more information, see Reserved Instance * Marketplace in the Amazon Elastic Compute Cloud User Guide. *

* * @param describeReservedInstancesListingsRequest * Contains the parameters for DescribeReservedInstancesListings. * @return Result of the DescribeReservedInstancesListings operation returned by the service. * @sample AmazonEC2.DescribeReservedInstancesListings * @see AWS API Documentation */ @Override public DescribeReservedInstancesListingsResult describeReservedInstancesListings( DescribeReservedInstancesListingsRequest describeReservedInstancesListingsRequest) { ExecutionContext executionContext = createExecutionContext(describeReservedInstancesListingsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DescribeReservedInstancesListingsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeReservedInstancesListingsResult describeReservedInstancesListings() { return describeReservedInstancesListings(new DescribeReservedInstancesListingsRequest()); } /** *

* 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. *

*

* For more information, see Modifying Reserved Instances in * the Amazon Elastic Compute Cloud User Guide. *

* * @param describeReservedInstancesModificationsRequest * Contains the parameters for DescribeReservedInstancesModifications. * @return Result of the DescribeReservedInstancesModifications operation returned by the service. * @sample AmazonEC2.DescribeReservedInstancesModifications * @see AWS API Documentation */ @Override public DescribeReservedInstancesModificationsResult describeReservedInstancesModifications( DescribeReservedInstancesModificationsRequest describeReservedInstancesModificationsRequest) { ExecutionContext executionContext = createExecutionContext(describeReservedInstancesModificationsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DescribeReservedInstancesModificationsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeReservedInstancesModificationsResult describeReservedInstancesModifications() { return describeReservedInstancesModifications(new DescribeReservedInstancesModificationsRequest()); } /** *

* 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. *

*

* 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. *

*

* For more information, see Reserved Instance * Marketplace in the Amazon Elastic Compute Cloud User Guide. *

* * @param describeReservedInstancesOfferingsRequest * Contains the parameters for DescribeReservedInstancesOfferings. * @return Result of the DescribeReservedInstancesOfferings operation returned by the service. * @sample AmazonEC2.DescribeReservedInstancesOfferings * @see AWS API Documentation */ @Override public DescribeReservedInstancesOfferingsResult describeReservedInstancesOfferings( DescribeReservedInstancesOfferingsRequest describeReservedInstancesOfferingsRequest) { ExecutionContext executionContext = createExecutionContext(describeReservedInstancesOfferingsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DescribeReservedInstancesOfferingsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeReservedInstancesOfferingsResult describeReservedInstancesOfferings() { return describeReservedInstancesOfferings(new DescribeReservedInstancesOfferingsRequest()); } /** *

* Describes one or more of your route tables. *

*

* 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. *

*

* For more information about route tables, see Route Tables in the * Amazon Virtual Private Cloud User Guide. *

* * @param describeRouteTablesRequest * Contains the parameters for DescribeRouteTables. * @return Result of the DescribeRouteTables operation returned by the service. * @sample AmazonEC2.DescribeRouteTables * @see AWS API * Documentation */ @Override public DescribeRouteTablesResult describeRouteTables(DescribeRouteTablesRequest describeRouteTablesRequest) { ExecutionContext executionContext = createExecutionContext(describeRouteTablesRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DescribeRouteTablesResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeRouteTablesResult describeRouteTables() { return describeRouteTables(new DescribeRouteTablesRequest()); } /** *

* Finds available schedules that meet the specified criteria. *

*

* 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. *

*

* After you find a schedule that meets your needs, call PurchaseScheduledInstances to purchase Scheduled * Instances with that schedule. *

* * @param describeScheduledInstanceAvailabilityRequest * Contains the parameters for DescribeScheduledInstanceAvailability. * @return Result of the DescribeScheduledInstanceAvailability operation returned by the service. * @sample AmazonEC2.DescribeScheduledInstanceAvailability * @see AWS API Documentation */ @Override public DescribeScheduledInstanceAvailabilityResult describeScheduledInstanceAvailability( DescribeScheduledInstanceAvailabilityRequest describeScheduledInstanceAvailabilityRequest) { ExecutionContext executionContext = createExecutionContext(describeScheduledInstanceAvailabilityRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DescribeScheduledInstanceAvailabilityResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Describes one or more of your Scheduled Instances. *

* * @param describeScheduledInstancesRequest * Contains the parameters for DescribeScheduledInstances. * @return Result of the DescribeScheduledInstances operation returned by the service. * @sample AmazonEC2.DescribeScheduledInstances * @see AWS * API Documentation */ @Override public DescribeScheduledInstancesResult describeScheduledInstances(DescribeScheduledInstancesRequest describeScheduledInstancesRequest) { ExecutionContext executionContext = createExecutionContext(describeScheduledInstancesRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DescribeScheduledInstancesResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* [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. *

* * @param describeSecurityGroupReferencesRequest * @return Result of the DescribeSecurityGroupReferences operation returned by the service. * @sample AmazonEC2.DescribeSecurityGroupReferences * @see AWS API Documentation */ @Override public DescribeSecurityGroupReferencesResult describeSecurityGroupReferences(DescribeSecurityGroupReferencesRequest describeSecurityGroupReferencesRequest) { ExecutionContext executionContext = createExecutionContext(describeSecurityGroupReferencesRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DescribeSecurityGroupReferencesResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Describes one or more of your security groups. *

*

* A security group is for use with instances either in the EC2-Classic platform or in a specific VPC. For more * information, see Amazon * EC2 Security Groups in the Amazon Elastic Compute Cloud User Guide and Security Groups for Your * VPC in the Amazon Virtual Private Cloud User Guide. *

* * @param describeSecurityGroupsRequest * Contains the parameters for DescribeSecurityGroups. * @return Result of the DescribeSecurityGroups operation returned by the service. * @sample AmazonEC2.DescribeSecurityGroups * @see AWS API * Documentation */ @Override public DescribeSecurityGroupsResult describeSecurityGroups(DescribeSecurityGroupsRequest describeSecurityGroupsRequest) { ExecutionContext executionContext = createExecutionContext(describeSecurityGroupsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DescribeSecurityGroupsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeSecurityGroupsResult describeSecurityGroups() { return describeSecurityGroups(new DescribeSecurityGroupsRequest()); } /** *

* Describes the specified attribute of the specified snapshot. You can specify only one attribute at a time. *

*

* For more information about EBS snapshots, see Amazon EBS Snapshots in the * Amazon Elastic Compute Cloud User Guide. *

* * @param describeSnapshotAttributeRequest * Contains the parameters for DescribeSnapshotAttribute. * @return Result of the DescribeSnapshotAttribute operation returned by the service. * @sample AmazonEC2.DescribeSnapshotAttribute * @see AWS * API Documentation */ @Override public DescribeSnapshotAttributeResult describeSnapshotAttribute(DescribeSnapshotAttributeRequest describeSnapshotAttributeRequest) { ExecutionContext executionContext = createExecutionContext(describeSnapshotAttributeRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DescribeSnapshotAttributeResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* 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. *

*

* The create volume permissions fall into the following categories: *

*
    *
  • *

    * public: The owner of the snapshot granted create volume permissions for the snapshot to the * all group. All AWS accounts have create volume permissions for these snapshots. *

    *
  • *
  • *

    * explicit: The owner of the snapshot granted create volume permissions to a specific AWS account. *

    *
  • *
  • *

    * implicit: An AWS account has implicit create volume permissions for all snapshots it owns. *

    *
  • *
*

* 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. *

*

* 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. *

*

* If you specify one or more snapshot owners using the OwnerIds 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, amazon for snapshots owned by Amazon, or self for snapshots that you * own. *

*

* 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), self for snapshots for which * you own or have explicit permissions, or all for public snapshots. *

*

* If you are describing a long list of snapshots, you can paginate the output to make the list more manageable. The * MaxResults parameter sets the maximum number of results returned in a single page. If the list of * results exceeds your MaxResults value, then that number of results is returned along with a * NextToken value that can be passed to a subsequent DescribeSnapshots request to * retrieve the remaining results. *

*

* For more information about EBS snapshots, see Amazon EBS Snapshots in the * Amazon Elastic Compute Cloud User Guide. *

* * @param describeSnapshotsRequest * Contains the parameters for DescribeSnapshots. * @return Result of the DescribeSnapshots operation returned by the service. * @sample AmazonEC2.DescribeSnapshots * @see AWS API * Documentation */ @Override public DescribeSnapshotsResult describeSnapshots(DescribeSnapshotsRequest describeSnapshotsRequest) { ExecutionContext executionContext = createExecutionContext(describeSnapshotsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DescribeSnapshotsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeSnapshotsResult describeSnapshots() { return describeSnapshots(new DescribeSnapshotsRequest()); } /** *

* Describes the data feed for Spot instances. For more information, see Spot Instance Data Feed in the * Amazon Elastic Compute Cloud User Guide. *

* * @param describeSpotDatafeedSubscriptionRequest * Contains the parameters for DescribeSpotDatafeedSubscription. * @return Result of the DescribeSpotDatafeedSubscription operation returned by the service. * @sample AmazonEC2.DescribeSpotDatafeedSubscription * @see AWS API Documentation */ @Override public DescribeSpotDatafeedSubscriptionResult describeSpotDatafeedSubscription( DescribeSpotDatafeedSubscriptionRequest describeSpotDatafeedSubscriptionRequest) { ExecutionContext executionContext = createExecutionContext(describeSpotDatafeedSubscriptionRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DescribeSpotDatafeedSubscriptionResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeSpotDatafeedSubscriptionResult describeSpotDatafeedSubscription() { return describeSpotDatafeedSubscription(new DescribeSpotDatafeedSubscriptionRequest()); } /** *

* Describes the running instances for the specified Spot fleet. *

* * @param describeSpotFleetInstancesRequest * Contains the parameters for DescribeSpotFleetInstances. * @return Result of the DescribeSpotFleetInstances operation returned by the service. * @sample AmazonEC2.DescribeSpotFleetInstances * @see AWS * API Documentation */ @Override public DescribeSpotFleetInstancesResult describeSpotFleetInstances(DescribeSpotFleetInstancesRequest describeSpotFleetInstancesRequest) { ExecutionContext executionContext = createExecutionContext(describeSpotFleetInstancesRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DescribeSpotFleetInstancesResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Describes the events for the specified Spot fleet request during the specified time. *

*

* 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. *

* * @param describeSpotFleetRequestHistoryRequest * Contains the parameters for DescribeSpotFleetRequestHistory. * @return Result of the DescribeSpotFleetRequestHistory operation returned by the service. * @sample AmazonEC2.DescribeSpotFleetRequestHistory * @see AWS API Documentation */ @Override public DescribeSpotFleetRequestHistoryResult describeSpotFleetRequestHistory(DescribeSpotFleetRequestHistoryRequest describeSpotFleetRequestHistoryRequest) { ExecutionContext executionContext = createExecutionContext(describeSpotFleetRequestHistoryRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DescribeSpotFleetRequestHistoryResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Describes your Spot fleet requests. *

*

* Spot fleet requests are deleted 48 hours after they are canceled and their instances are terminated. *

* * @param describeSpotFleetRequestsRequest * Contains the parameters for DescribeSpotFleetRequests. * @return Result of the DescribeSpotFleetRequests operation returned by the service. * @sample AmazonEC2.DescribeSpotFleetRequests * @see AWS * API Documentation */ @Override public DescribeSpotFleetRequestsResult describeSpotFleetRequests(DescribeSpotFleetRequestsRequest describeSpotFleetRequestsRequest) { ExecutionContext executionContext = createExecutionContext(describeSpotFleetRequestsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DescribeSpotFleetRequestsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeSpotFleetRequestsResult describeSpotFleetRequests() { return describeSpotFleetRequests(new DescribeSpotFleetRequestsRequest()); } /** *

* 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 Spot Instance Requests in * the Amazon Elastic Compute Cloud User Guide. *

*

* You can use DescribeSpotInstanceRequests to find a running Spot instance by examining the response. * If the status of the Spot instance is fulfilled, the instance ID appears in the response and * contains the identifier of the instance. Alternatively, you can use DescribeInstances with a filter to * look for instances where the instance lifecycle is spot. *

*

* Spot instance requests are deleted 4 hours after they are canceled and their instances are terminated. *

* * @param describeSpotInstanceRequestsRequest * Contains the parameters for DescribeSpotInstanceRequests. * @return Result of the DescribeSpotInstanceRequests operation returned by the service. * @sample AmazonEC2.DescribeSpotInstanceRequests * @see AWS API Documentation */ @Override public DescribeSpotInstanceRequestsResult describeSpotInstanceRequests(DescribeSpotInstanceRequestsRequest describeSpotInstanceRequestsRequest) { ExecutionContext executionContext = createExecutionContext(describeSpotInstanceRequestsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DescribeSpotInstanceRequestsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeSpotInstanceRequestsResult describeSpotInstanceRequests() { return describeSpotInstanceRequests(new DescribeSpotInstanceRequestsRequest()); } /** *

* Describes the Spot price history. For more information, see Spot Instance Pricing * History in the Amazon Elastic Compute Cloud User Guide. *

*

* 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. *

* * @param describeSpotPriceHistoryRequest * Contains the parameters for DescribeSpotPriceHistory. * @return Result of the DescribeSpotPriceHistory operation returned by the service. * @sample AmazonEC2.DescribeSpotPriceHistory * @see AWS * API Documentation */ @Override public DescribeSpotPriceHistoryResult describeSpotPriceHistory(DescribeSpotPriceHistoryRequest describeSpotPriceHistoryRequest) { ExecutionContext executionContext = createExecutionContext(describeSpotPriceHistoryRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DescribeSpotPriceHistoryResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeSpotPriceHistoryResult describeSpotPriceHistory() { return describeSpotPriceHistory(new DescribeSpotPriceHistoryRequest()); } /** *

* [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. *

* * @param describeStaleSecurityGroupsRequest * @return Result of the DescribeStaleSecurityGroups operation returned by the service. * @sample AmazonEC2.DescribeStaleSecurityGroups * @see AWS API Documentation */ @Override public DescribeStaleSecurityGroupsResult describeStaleSecurityGroups(DescribeStaleSecurityGroupsRequest describeStaleSecurityGroupsRequest) { ExecutionContext executionContext = createExecutionContext(describeStaleSecurityGroupsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DescribeStaleSecurityGroupsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Describes one or more of your subnets. *

*

* For more information about subnets, see Your VPC and Subnets in the * Amazon Virtual Private Cloud User Guide. *

* * @param describeSubnetsRequest * Contains the parameters for DescribeSubnets. * @return Result of the DescribeSubnets operation returned by the service. * @sample AmazonEC2.DescribeSubnets * @see AWS API * Documentation */ @Override public DescribeSubnetsResult describeSubnets(DescribeSubnetsRequest describeSubnetsRequest) { ExecutionContext executionContext = createExecutionContext(describeSubnetsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DescribeSubnetsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeSubnetsResult describeSubnets() { return describeSubnets(new DescribeSubnetsRequest()); } /** *

* Describes one or more of the tags for your EC2 resources. *

*

* For more information about tags, see Tagging Your Resources in the * Amazon Elastic Compute Cloud User Guide. *

* * @param describeTagsRequest * Contains the parameters for DescribeTags. * @return Result of the DescribeTags operation returned by the service. * @sample AmazonEC2.DescribeTags * @see AWS API * Documentation */ @Override public DescribeTagsResult describeTags(DescribeTagsRequest describeTagsRequest) { ExecutionContext executionContext = createExecutionContext(describeTagsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler(new DescribeTagsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeTagsResult describeTags() { return describeTags(new DescribeTagsRequest()); } /** *

* Describes the specified attribute of the specified volume. You can specify only one attribute at a time. *

*

* For more information about EBS volumes, see Amazon EBS Volumes in the Amazon * Elastic Compute Cloud User Guide. *

* * @param describeVolumeAttributeRequest * Contains the parameters for DescribeVolumeAttribute. * @return Result of the DescribeVolumeAttribute operation returned by the service. * @sample AmazonEC2.DescribeVolumeAttribute * @see AWS * API Documentation */ @Override public DescribeVolumeAttributeResult describeVolumeAttribute(DescribeVolumeAttributeRequest describeVolumeAttributeRequest) { ExecutionContext executionContext = createExecutionContext(describeVolumeAttributeRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DescribeVolumeAttributeResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* 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. *

*

* The DescribeVolumeStatus operation provides the following information about the specified volumes: *

*

* Status: Reflects the current status of the volume. The possible values are ok, * impaired , warning, or insufficient-data. If all checks pass, the overall * status of the volume is ok. If the check fails, the overall status is impaired. If the * status is insufficient-data, 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 Monitoring the Status of * Your Volumes. *

*

* Events: Reflect the cause of a volume status and may require you to take action. For example, if your * volume returns an impaired status, then the volume event might be * potential-data-inconsistency. 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. *

*

* Actions: Reflect the actions you may have to take in response to an event. For example, if the status of * the volume is impaired and the volume event shows potential-data-inconsistency, then * the action shows enable-volume-io. This means that you may want to enable the I/O operations for the * volume by calling the EnableVolumeIO action and then check the volume for data consistency. *

* *

* 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 error state (for example, when a volume is incapable of * accepting I/O.) *

*
* * @param describeVolumeStatusRequest * Contains the parameters for DescribeVolumeStatus. * @return Result of the DescribeVolumeStatus operation returned by the service. * @sample AmazonEC2.DescribeVolumeStatus * @see AWS API * Documentation */ @Override public DescribeVolumeStatusResult describeVolumeStatus(DescribeVolumeStatusRequest describeVolumeStatusRequest) { ExecutionContext executionContext = createExecutionContext(describeVolumeStatusRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DescribeVolumeStatusResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeVolumeStatusResult describeVolumeStatus() { return describeVolumeStatus(new DescribeVolumeStatusRequest()); } /** *

* Describes the specified EBS volumes. *

*

* If you are describing a long list of volumes, you can paginate the output to make the list more manageable. The * MaxResults parameter sets the maximum number of results returned in a single page. If the list of * results exceeds your MaxResults value, then that number of results is returned along with a * NextToken value that can be passed to a subsequent DescribeVolumes request to retrieve * the remaining results. *

*

* For more information about EBS volumes, see Amazon EBS Volumes in the Amazon * Elastic Compute Cloud User Guide. *

* * @param describeVolumesRequest * Contains the parameters for DescribeVolumes. * @return Result of the DescribeVolumes operation returned by the service. * @sample AmazonEC2.DescribeVolumes * @see AWS API * Documentation */ @Override public DescribeVolumesResult describeVolumes(DescribeVolumesRequest describeVolumesRequest) { ExecutionContext executionContext = createExecutionContext(describeVolumesRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DescribeVolumesResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeVolumesResult describeVolumes() { return describeVolumes(new DescribeVolumesRequest()); } /** *

* Reports the current modification status of EBS volumes. *

*

* Current-generation EBS volumes support modification of attributes including type, size, and (for io1 * 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 modifying, * optimizing, completed, or failed. If a volume has never been modified, * then certain elements of the returned VolumeModification objects are null. *

*

* You can also use CloudWatch Events to check the status of a modification to an EBS volume. For information about * CloudWatch Events, see the Amazon CloudWatch * Events User Guide. For more information, see Monitoring * Volume Modifications". *

* * @param describeVolumesModificationsRequest * @return Result of the DescribeVolumesModifications operation returned by the service. * @sample AmazonEC2.DescribeVolumesModifications * @see AWS API Documentation */ @Override public DescribeVolumesModificationsResult describeVolumesModifications(DescribeVolumesModificationsRequest describeVolumesModificationsRequest) { ExecutionContext executionContext = createExecutionContext(describeVolumesModificationsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DescribeVolumesModificationsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Describes the specified attribute of the specified VPC. You can specify only one attribute at a time. *

* * @param describeVpcAttributeRequest * Contains the parameters for DescribeVpcAttribute. * @return Result of the DescribeVpcAttribute operation returned by the service. * @sample AmazonEC2.DescribeVpcAttribute * @see AWS API * Documentation */ @Override public DescribeVpcAttributeResult describeVpcAttribute(DescribeVpcAttributeRequest describeVpcAttributeRequest) { ExecutionContext executionContext = createExecutionContext(describeVpcAttributeRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DescribeVpcAttributeResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Describes the ClassicLink status of one or more VPCs. *

* * @param describeVpcClassicLinkRequest * Contains the parameters for DescribeVpcClassicLink. * @return Result of the DescribeVpcClassicLink operation returned by the service. * @sample AmazonEC2.DescribeVpcClassicLink * @see AWS API * Documentation */ @Override public DescribeVpcClassicLinkResult describeVpcClassicLink(DescribeVpcClassicLinkRequest describeVpcClassicLinkRequest) { ExecutionContext executionContext = createExecutionContext(describeVpcClassicLinkRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DescribeVpcClassicLinkResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeVpcClassicLinkResult describeVpcClassicLink() { return describeVpcClassicLink(new DescribeVpcClassicLinkRequest()); } /** *

* 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 about ClassicLink, see ClassicLink in the Amazon * Elastic Compute Cloud User Guide. *

* * @param describeVpcClassicLinkDnsSupportRequest * Contains the parameters for DescribeVpcClassicLinkDnsSupport. * @return Result of the DescribeVpcClassicLinkDnsSupport operation returned by the service. * @sample AmazonEC2.DescribeVpcClassicLinkDnsSupport * @see AWS API Documentation */ @Override public DescribeVpcClassicLinkDnsSupportResult describeVpcClassicLinkDnsSupport( DescribeVpcClassicLinkDnsSupportRequest describeVpcClassicLinkDnsSupportRequest) { ExecutionContext executionContext = createExecutionContext(describeVpcClassicLinkDnsSupportRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DescribeVpcClassicLinkDnsSupportResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Describes all supported AWS services that can be specified when creating a VPC endpoint. *

* * @param describeVpcEndpointServicesRequest * Contains the parameters for DescribeVpcEndpointServices. * @return Result of the DescribeVpcEndpointServices operation returned by the service. * @sample AmazonEC2.DescribeVpcEndpointServices * @see AWS API Documentation */ @Override public DescribeVpcEndpointServicesResult describeVpcEndpointServices(DescribeVpcEndpointServicesRequest describeVpcEndpointServicesRequest) { ExecutionContext executionContext = createExecutionContext(describeVpcEndpointServicesRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DescribeVpcEndpointServicesResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeVpcEndpointServicesResult describeVpcEndpointServices() { return describeVpcEndpointServices(new DescribeVpcEndpointServicesRequest()); } /** *

* Describes one or more of your VPC endpoints. *

* * @param describeVpcEndpointsRequest * Contains the parameters for DescribeVpcEndpoints. * @return Result of the DescribeVpcEndpoints operation returned by the service. * @sample AmazonEC2.DescribeVpcEndpoints * @see AWS API * Documentation */ @Override public DescribeVpcEndpointsResult describeVpcEndpoints(DescribeVpcEndpointsRequest describeVpcEndpointsRequest) { ExecutionContext executionContext = createExecutionContext(describeVpcEndpointsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DescribeVpcEndpointsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeVpcEndpointsResult describeVpcEndpoints() { return describeVpcEndpoints(new DescribeVpcEndpointsRequest()); } /** *

* Describes one or more of your VPC peering connections. *

* * @param describeVpcPeeringConnectionsRequest * Contains the parameters for DescribeVpcPeeringConnections. * @return Result of the DescribeVpcPeeringConnections operation returned by the service. * @sample AmazonEC2.DescribeVpcPeeringConnections * @see AWS API Documentation */ @Override public DescribeVpcPeeringConnectionsResult describeVpcPeeringConnections(DescribeVpcPeeringConnectionsRequest describeVpcPeeringConnectionsRequest) { ExecutionContext executionContext = createExecutionContext(describeVpcPeeringConnectionsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DescribeVpcPeeringConnectionsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeVpcPeeringConnectionsResult describeVpcPeeringConnections() { return describeVpcPeeringConnections(new DescribeVpcPeeringConnectionsRequest()); } /** *

* Describes one or more of your VPCs. *

* * @param describeVpcsRequest * Contains the parameters for DescribeVpcs. * @return Result of the DescribeVpcs operation returned by the service. * @sample AmazonEC2.DescribeVpcs * @see AWS API * Documentation */ @Override public DescribeVpcsResult describeVpcs(DescribeVpcsRequest describeVpcsRequest) { ExecutionContext executionContext = createExecutionContext(describeVpcsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler(new DescribeVpcsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeVpcsResult describeVpcs() { return describeVpcs(new DescribeVpcsRequest()); } /** *

* Describes one or more of your VPN connections. *

*

* For more information about VPN connections, see Adding a Hardware Virtual Private * Gateway to Your VPC in the Amazon Virtual Private Cloud User Guide. *

* * @param describeVpnConnectionsRequest * Contains the parameters for DescribeVpnConnections. * @return Result of the DescribeVpnConnections operation returned by the service. * @sample AmazonEC2.DescribeVpnConnections * @see AWS API * Documentation */ @Override public DescribeVpnConnectionsResult describeVpnConnections(DescribeVpnConnectionsRequest describeVpnConnectionsRequest) { ExecutionContext executionContext = createExecutionContext(describeVpnConnectionsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DescribeVpnConnectionsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeVpnConnectionsResult describeVpnConnections() { return describeVpnConnections(new DescribeVpnConnectionsRequest()); } /** *

* Describes one or more of your virtual private gateways. *

*

* For more information about virtual private gateways, see Adding an IPsec Hardware VPN to Your * VPC in the Amazon Virtual Private Cloud User Guide. *

* * @param describeVpnGatewaysRequest * Contains the parameters for DescribeVpnGateways. * @return Result of the DescribeVpnGateways operation returned by the service. * @sample AmazonEC2.DescribeVpnGateways * @see AWS API * Documentation */ @Override public DescribeVpnGatewaysResult describeVpnGateways(DescribeVpnGatewaysRequest describeVpnGatewaysRequest) { ExecutionContext executionContext = createExecutionContext(describeVpnGatewaysRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DescribeVpnGatewaysResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeVpnGatewaysResult describeVpnGateways() { return describeVpnGateways(new DescribeVpnGatewaysRequest()); } /** *

* 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. *

* * @param detachClassicLinkVpcRequest * Contains the parameters for DetachClassicLinkVpc. * @return Result of the DetachClassicLinkVpc operation returned by the service. * @sample AmazonEC2.DetachClassicLinkVpc * @see AWS API * Documentation */ @Override public DetachClassicLinkVpcResult detachClassicLinkVpc(DetachClassicLinkVpcRequest detachClassicLinkVpcRequest) { ExecutionContext executionContext = createExecutionContext(detachClassicLinkVpcRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DetachClassicLinkVpcResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* 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. *

* * @param detachInternetGatewayRequest * Contains the parameters for DetachInternetGateway. * @return Result of the DetachInternetGateway operation returned by the service. * @sample AmazonEC2.DetachInternetGateway * @see AWS API * Documentation */ @Override public DetachInternetGatewayResult detachInternetGateway(DetachInternetGatewayRequest detachInternetGatewayRequest) { ExecutionContext executionContext = createExecutionContext(detachInternetGatewayRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DetachInternetGatewayResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Detaches a network interface from an instance. *

* * @param detachNetworkInterfaceRequest * Contains the parameters for DetachNetworkInterface. * @return Result of the DetachNetworkInterface operation returned by the service. * @sample AmazonEC2.DetachNetworkInterface * @see AWS API * Documentation */ @Override public DetachNetworkInterfaceResult detachNetworkInterface(DetachNetworkInterfaceRequest detachNetworkInterfaceRequest) { ExecutionContext executionContext = createExecutionContext(detachNetworkInterfaceRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DetachNetworkInterfaceResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* 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 * busy 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. *

*

* When a volume with an AWS Marketplace product code is detached from an instance, the product code is no longer * associated with the instance. *

*

* For more information, see Detaching an Amazon EBS * Volume in the Amazon Elastic Compute Cloud User Guide. *

* * @param detachVolumeRequest * Contains the parameters for DetachVolume. * @return Result of the DetachVolume operation returned by the service. * @sample AmazonEC2.DetachVolume * @see AWS API * Documentation */ @Override public DetachVolumeResult detachVolume(DetachVolumeRequest detachVolumeRequest) { ExecutionContext executionContext = createExecutionContext(detachVolumeRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler(new DetachVolumeResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* 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). *

*

* You must wait for the attachment's state to switch to detached before you can delete the VPC or * attach a different VPC to the virtual private gateway. *

* * @param detachVpnGatewayRequest * Contains the parameters for DetachVpnGateway. * @return Result of the DetachVpnGateway operation returned by the service. * @sample AmazonEC2.DetachVpnGateway * @see AWS API * Documentation */ @Override public DetachVpnGatewayResult detachVpnGateway(DetachVpnGatewayRequest detachVpnGatewayRequest) { ExecutionContext executionContext = createExecutionContext(detachVpnGatewayRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DetachVpnGatewayResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Disables a virtual private gateway (VGW) from propagating routes to a specified route table of a VPC. *

* * @param disableVgwRoutePropagationRequest * Contains the parameters for DisableVgwRoutePropagation. * @return Result of the DisableVgwRoutePropagation operation returned by the service. * @sample AmazonEC2.DisableVgwRoutePropagation * @see AWS * API Documentation */ @Override public DisableVgwRoutePropagationResult disableVgwRoutePropagation(DisableVgwRoutePropagationRequest disableVgwRoutePropagationRequest) { ExecutionContext executionContext = createExecutionContext(disableVgwRoutePropagationRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DisableVgwRoutePropagationResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Disables ClassicLink for a VPC. You cannot disable ClassicLink for a VPC that has EC2-Classic instances linked to * it. *

* * @param disableVpcClassicLinkRequest * Contains the parameters for DisableVpcClassicLink. * @return Result of the DisableVpcClassicLink operation returned by the service. * @sample AmazonEC2.DisableVpcClassicLink * @see AWS API * Documentation */ @Override public DisableVpcClassicLinkResult disableVpcClassicLink(DisableVpcClassicLinkRequest disableVpcClassicLinkRequest) { ExecutionContext executionContext = createExecutionContext(disableVpcClassicLinkRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DisableVpcClassicLinkResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* 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 ClassicLink in the Amazon * Elastic Compute Cloud User Guide. *

* * @param disableVpcClassicLinkDnsSupportRequest * Contains the parameters for DisableVpcClassicLinkDnsSupport. * @return Result of the DisableVpcClassicLinkDnsSupport operation returned by the service. * @sample AmazonEC2.DisableVpcClassicLinkDnsSupport * @see AWS API Documentation */ @Override public DisableVpcClassicLinkDnsSupportResult disableVpcClassicLinkDnsSupport(DisableVpcClassicLinkDnsSupportRequest disableVpcClassicLinkDnsSupportRequest) { ExecutionContext executionContext = createExecutionContext(disableVpcClassicLinkDnsSupportRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DisableVpcClassicLinkDnsSupportResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Disassociates an Elastic IP address from the instance or network interface it's associated with. *

*

* An Elastic IP address is for use in either the EC2-Classic platform or in a VPC. For more information, see Elastic IP Addresses * in the Amazon Elastic Compute Cloud User Guide. *

*

* This is an idempotent operation. If you perform the operation more than once, Amazon EC2 doesn't return an error. *

* * @param disassociateAddressRequest * Contains the parameters for DisassociateAddress. * @return Result of the DisassociateAddress operation returned by the service. * @sample AmazonEC2.DisassociateAddress * @see AWS API * Documentation */ @Override public DisassociateAddressResult disassociateAddress(DisassociateAddressRequest disassociateAddressRequest) { ExecutionContext executionContext = createExecutionContext(disassociateAddressRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DisassociateAddressResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Disassociates an IAM instance profile from a running or stopped instance. *

*

* Use DescribeIamInstanceProfileAssociations to get the association ID. *

* * @param disassociateIamInstanceProfileRequest * @return Result of the DisassociateIamInstanceProfile operation returned by the service. * @sample AmazonEC2.DisassociateIamInstanceProfile * @see AWS API Documentation */ @Override public DisassociateIamInstanceProfileResult disassociateIamInstanceProfile(DisassociateIamInstanceProfileRequest disassociateIamInstanceProfileRequest) { ExecutionContext executionContext = createExecutionContext(disassociateIamInstanceProfileRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DisassociateIamInstanceProfileResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Disassociates a subnet from a route table. *

*

* 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 Route Tables in the * Amazon Virtual Private Cloud User Guide. *

* * @param disassociateRouteTableRequest * Contains the parameters for DisassociateRouteTable. * @return Result of the DisassociateRouteTable operation returned by the service. * @sample AmazonEC2.DisassociateRouteTable * @see AWS API * Documentation */ @Override public DisassociateRouteTableResult disassociateRouteTable(DisassociateRouteTableRequest disassociateRouteTableRequest) { ExecutionContext executionContext = createExecutionContext(disassociateRouteTableRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DisassociateRouteTableResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* 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. *

* * @param disassociateSubnetCidrBlockRequest * @return Result of the DisassociateSubnetCidrBlock operation returned by the service. * @sample AmazonEC2.DisassociateSubnetCidrBlock * @see AWS API Documentation */ @Override public DisassociateSubnetCidrBlockResult disassociateSubnetCidrBlock(DisassociateSubnetCidrBlockRequest disassociateSubnetCidrBlockRequest) { ExecutionContext executionContext = createExecutionContext(disassociateSubnetCidrBlockRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DisassociateSubnetCidrBlockResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* 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. *

* * @param disassociateVpcCidrBlockRequest * @return Result of the DisassociateVpcCidrBlock operation returned by the service. * @sample AmazonEC2.DisassociateVpcCidrBlock * @see AWS * API Documentation */ @Override public DisassociateVpcCidrBlockResult disassociateVpcCidrBlock(DisassociateVpcCidrBlockRequest disassociateVpcCidrBlockRequest) { ExecutionContext executionContext = createExecutionContext(disassociateVpcCidrBlockRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new DisassociateVpcCidrBlockResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Enables a virtual private gateway (VGW) to propagate routes to the specified route table of a VPC. *

* * @param enableVgwRoutePropagationRequest * Contains the parameters for EnableVgwRoutePropagation. * @return Result of the EnableVgwRoutePropagation operation returned by the service. * @sample AmazonEC2.EnableVgwRoutePropagation * @see AWS * API Documentation */ @Override public EnableVgwRoutePropagationResult enableVgwRoutePropagation(EnableVgwRoutePropagationRequest enableVgwRoutePropagationRequest) { ExecutionContext executionContext = createExecutionContext(enableVgwRoutePropagationRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new EnableVgwRoutePropagationResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Enables I/O operations for a volume that had I/O operations disabled because the data on the volume was * potentially inconsistent. *

* * @param enableVolumeIORequest * Contains the parameters for EnableVolumeIO. * @return Result of the EnableVolumeIO operation returned by the service. * @sample AmazonEC2.EnableVolumeIO * @see AWS API * Documentation */ @Override public EnableVolumeIOResult enableVolumeIO(EnableVolumeIORequest enableVolumeIORequest) { ExecutionContext executionContext = createExecutionContext(enableVolumeIORequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new EnableVolumeIOResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* 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 10.0.0.0/8 IP address range, excluding * local routes for VPCs in the 10.0.0.0/16 and 10.1.0.0/16 IP address ranges. For more * information, see ClassicLink in the Amazon * Elastic Compute Cloud User Guide. *

* * @param enableVpcClassicLinkRequest * Contains the parameters for EnableVpcClassicLink. * @return Result of the EnableVpcClassicLink operation returned by the service. * @sample AmazonEC2.EnableVpcClassicLink * @see AWS API * Documentation */ @Override public EnableVpcClassicLinkResult enableVpcClassicLink(EnableVpcClassicLinkRequest enableVpcClassicLinkRequest) { ExecutionContext executionContext = createExecutionContext(enableVpcClassicLinkRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new EnableVpcClassicLinkResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* 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 ClassicLink in the Amazon * Elastic Compute Cloud User Guide. *

* * @param enableVpcClassicLinkDnsSupportRequest * Contains the parameters for EnableVpcClassicLinkDnsSupport. * @return Result of the EnableVpcClassicLinkDnsSupport operation returned by the service. * @sample AmazonEC2.EnableVpcClassicLinkDnsSupport * @see AWS API Documentation */ @Override public EnableVpcClassicLinkDnsSupportResult enableVpcClassicLinkDnsSupport(EnableVpcClassicLinkDnsSupportRequest enableVpcClassicLinkDnsSupportRequest) { ExecutionContext executionContext = createExecutionContext(enableVpcClassicLinkDnsSupportRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new EnableVpcClassicLinkDnsSupportResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Gets the console output for the specified instance. *

*

* 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. *

*

* 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. *

*

* 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. *

*

* For Windows instances, the instance console output includes output from the EC2Config service. *

* * @param getConsoleOutputRequest * Contains the parameters for GetConsoleOutput. * @return Result of the GetConsoleOutput operation returned by the service. * @sample AmazonEC2.GetConsoleOutput * @see AWS API * Documentation */ @Override public GetConsoleOutputResult getConsoleOutput(GetConsoleOutputRequest getConsoleOutputRequest) { ExecutionContext executionContext = createExecutionContext(getConsoleOutputRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new GetConsoleOutputResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Retrieve a JPG-format screenshot of a running instance to help with troubleshooting. *

*

* The returned content is Base64-encoded. *

* * @param getConsoleScreenshotRequest * Contains the parameters for the request. * @return Result of the GetConsoleScreenshot operation returned by the service. * @sample AmazonEC2.GetConsoleScreenshot * @see AWS API * Documentation */ @Override public GetConsoleScreenshotResult getConsoleScreenshot(GetConsoleScreenshotRequest getConsoleScreenshotRequest) { ExecutionContext executionContext = createExecutionContext(getConsoleScreenshotRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new GetConsoleScreenshotResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* 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. *

*

* This is a preview of the PurchaseHostReservation action and does not result in the offering being * purchased. *

* * @param getHostReservationPurchasePreviewRequest * @return Result of the GetHostReservationPurchasePreview operation returned by the service. * @sample AmazonEC2.GetHostReservationPurchasePreview * @see AWS API Documentation */ @Override public GetHostReservationPurchasePreviewResult getHostReservationPurchasePreview( GetHostReservationPurchasePreviewRequest getHostReservationPurchasePreviewRequest) { ExecutionContext executionContext = createExecutionContext(getHostReservationPurchasePreviewRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new GetHostReservationPurchasePreviewResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Retrieves the encrypted administrator password for an instance running Windows. *

*

* The Windows password is generated at boot if the EC2Config service plugin, * Ec2SetPassword, is enabled. This usually only happens the first time an AMI is launched, and then * Ec2SetPassword is automatically disabled. The password is not generated for rebundled AMIs unless * Ec2SetPassword is enabled before bundling. *

*

* The password is encrypted using the key pair that you specified when you launched the instance. You must provide * the corresponding key pair file. *

*

* 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. *

* * @param getPasswordDataRequest * Contains the parameters for GetPasswordData. * @return Result of the GetPasswordData operation returned by the service. * @sample AmazonEC2.GetPasswordData * @see AWS API * Documentation */ @Override public GetPasswordDataResult getPasswordData(GetPasswordDataRequest getPasswordDataRequest) { ExecutionContext executionContext = createExecutionContext(getPasswordDataRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new GetPasswordDataResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* 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. *

* * @param getReservedInstancesExchangeQuoteRequest * Contains the parameters for GetReservedInstanceExchangeQuote. * @return Result of the GetReservedInstancesExchangeQuote operation returned by the service. * @sample AmazonEC2.GetReservedInstancesExchangeQuote * @see AWS API Documentation */ @Override public GetReservedInstancesExchangeQuoteResult getReservedInstancesExchangeQuote( GetReservedInstancesExchangeQuoteRequest getReservedInstancesExchangeQuoteRequest) { ExecutionContext executionContext = createExecutionContext(getReservedInstancesExchangeQuoteRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new GetReservedInstancesExchangeQuoteResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Import single or multi-volume disk images or EBS snapshots into an Amazon Machine Image (AMI). For more * information, see Importing a VM as an * Image Using VM Import/Export in the VM Import/Export User Guide. *

* * @param importImageRequest * Contains the parameters for ImportImage. * @return Result of the ImportImage operation returned by the service. * @sample AmazonEC2.ImportImage * @see AWS API * Documentation */ @Override public ImportImageResult importImage(ImportImageRequest importImageRequest) { ExecutionContext executionContext = createExecutionContext(importImageRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler(new ImportImageResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public ImportImageResult importImage() { return importImage(new ImportImageRequest()); } /** *

* Creates an import instance task using metadata from the specified disk image. ImportInstance only * supports single-volume VMs. To import multi-volume VMs, use ImportImage. For more information, see Importing a * Virtual Machine Using the Amazon EC2 CLI. *

*

* For information about the import manifest referenced by this API action, see VM Import Manifest. *

* * @param importInstanceRequest * Contains the parameters for ImportInstance. * @return Result of the ImportInstance operation returned by the service. * @sample AmazonEC2.ImportInstance * @see AWS API * Documentation */ @Override public ImportInstanceResult importInstance(ImportInstanceRequest importInstanceRequest) { ExecutionContext executionContext = createExecutionContext(importInstanceRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new ImportInstanceResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Imports the public key from an RSA key pair that you created with a third-party tool. Compare this with * CreateKeyPair, 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. *

*

* For more information about key pairs, see Key Pairs in the Amazon * Elastic Compute Cloud User Guide. *

* * @param importKeyPairRequest * Contains the parameters for ImportKeyPair. * @return Result of the ImportKeyPair operation returned by the service. * @sample AmazonEC2.ImportKeyPair * @see AWS API * Documentation */ @Override public ImportKeyPairResult importKeyPair(ImportKeyPairRequest importKeyPairRequest) { ExecutionContext executionContext = createExecutionContext(importKeyPairRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler(new ImportKeyPairResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Imports a disk into an EBS snapshot. *

* * @param importSnapshotRequest * Contains the parameters for ImportSnapshot. * @return Result of the ImportSnapshot operation returned by the service. * @sample AmazonEC2.ImportSnapshot * @see AWS API * Documentation */ @Override public ImportSnapshotResult importSnapshot(ImportSnapshotRequest importSnapshotRequest) { ExecutionContext executionContext = createExecutionContext(importSnapshotRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new ImportSnapshotResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public ImportSnapshotResult importSnapshot() { return importSnapshot(new ImportSnapshotRequest()); } /** *

* Creates an import volume task using metadata from the specified disk image.For more information, see Importing Disks to Amazon EBS. *

*

* For information about the import manifest referenced by this API action, see VM Import Manifest. *

* * @param importVolumeRequest * Contains the parameters for ImportVolume. * @return Result of the ImportVolume operation returned by the service. * @sample AmazonEC2.ImportVolume * @see AWS API * Documentation */ @Override public ImportVolumeResult importVolume(ImportVolumeRequest importVolumeRequest) { ExecutionContext executionContext = createExecutionContext(importVolumeRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler(new ImportVolumeResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* 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 host, 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. *

* * @param modifyHostsRequest * Contains the parameters for ModifyHosts. * @return Result of the ModifyHosts operation returned by the service. * @sample AmazonEC2.ModifyHosts * @see AWS API * Documentation */ @Override public ModifyHostsResult modifyHosts(ModifyHostsRequest modifyHostsRequest) { ExecutionContext executionContext = createExecutionContext(modifyHostsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler(new ModifyHostsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* 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: * instance | reservation | snapshot | volume. *

*

* 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 Resource IDs in the Amazon * Elastic Compute Cloud User Guide. *

*

* 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 Describe command for the resource type. *

* * @param modifyIdFormatRequest * Contains the parameters of ModifyIdFormat. * @return Result of the ModifyIdFormat operation returned by the service. * @sample AmazonEC2.ModifyIdFormat * @see AWS API * Documentation */ @Override public ModifyIdFormatResult modifyIdFormat(ModifyIdFormatRequest modifyIdFormatRequest) { ExecutionContext executionContext = createExecutionContext(modifyIdFormatRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new ModifyIdFormatResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* 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. *

*

* The following resource types support longer IDs: instance | reservation | * snapshot | volume. For more information, see Resource IDs in the Amazon * Elastic Compute Cloud User Guide. *

*

* This setting applies to the principal specified in the request; it does not apply to the principal that makes the * request. *

*

* 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 Describe command for the resource type. *

* * @param modifyIdentityIdFormatRequest * Contains the parameters of ModifyIdentityIdFormat. * @return Result of the ModifyIdentityIdFormat operation returned by the service. * @sample AmazonEC2.ModifyIdentityIdFormat * @see AWS API * Documentation */ @Override public ModifyIdentityIdFormatResult modifyIdentityIdFormat(ModifyIdentityIdFormatRequest modifyIdentityIdFormatRequest) { ExecutionContext executionContext = createExecutionContext(modifyIdentityIdFormatRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new ModifyIdentityIdFormatResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Modifies the specified attribute of the specified AMI. You can specify only one attribute at a time. *

* *

* AWS Marketplace product codes cannot be modified. Images with an AWS Marketplace product code cannot be made * public. *

*
*

* 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. *

*
* * @param modifyImageAttributeRequest * Contains the parameters for ModifyImageAttribute. * @return Result of the ModifyImageAttribute operation returned by the service. * @sample AmazonEC2.ModifyImageAttribute * @see AWS API * Documentation */ @Override public ModifyImageAttributeResult modifyImageAttribute(ModifyImageAttributeRequest modifyImageAttributeRequest) { ExecutionContext executionContext = createExecutionContext(modifyImageAttributeRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new ModifyImageAttributeResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Modifies the specified attribute of the specified instance. You can specify only one attribute at a time. *

*

* To modify some attributes, the instance must be stopped. For more information, see Modifying Attributes of a Stopped Instance in the Amazon Elastic Compute Cloud User Guide. *

* * @param modifyInstanceAttributeRequest * Contains the parameters for ModifyInstanceAttribute. * @return Result of the ModifyInstanceAttribute operation returned by the service. * @sample AmazonEC2.ModifyInstanceAttribute * @see AWS * API Documentation */ @Override public ModifyInstanceAttributeResult modifyInstanceAttribute(ModifyInstanceAttributeRequest modifyInstanceAttributeRequest) { ExecutionContext executionContext = createExecutionContext(modifyInstanceAttributeRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new ModifyInstanceAttributeResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Set the instance affinity value for a specific stopped instance and modify the instance tenancy setting. *

*

* Instance affinity is disabled by default. When instance affinity is host 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. *

*

* 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. *

*

* You can modify the tenancy of a stopped instance with a tenancy of host or dedicated. *

*

* 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. *

* * @param modifyInstancePlacementRequest * Contains the parameters for ModifyInstancePlacement. * @return Result of the ModifyInstancePlacement operation returned by the service. * @sample AmazonEC2.ModifyInstancePlacement * @see AWS * API Documentation */ @Override public ModifyInstancePlacementResult modifyInstancePlacement(ModifyInstancePlacementRequest modifyInstancePlacementRequest) { ExecutionContext executionContext = createExecutionContext(modifyInstancePlacementRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new ModifyInstancePlacementResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Modifies the specified network interface attribute. You can specify only one attribute at a time. *

* * @param modifyNetworkInterfaceAttributeRequest * Contains the parameters for ModifyNetworkInterfaceAttribute. * @return Result of the ModifyNetworkInterfaceAttribute operation returned by the service. * @sample AmazonEC2.ModifyNetworkInterfaceAttribute * @see AWS API Documentation */ @Override public ModifyNetworkInterfaceAttributeResult modifyNetworkInterfaceAttribute(ModifyNetworkInterfaceAttributeRequest modifyNetworkInterfaceAttributeRequest) { ExecutionContext executionContext = createExecutionContext(modifyNetworkInterfaceAttributeRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new ModifyNetworkInterfaceAttributeResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* 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. *

*

* For more information, see Modifying Reserved Instances in * the Amazon Elastic Compute Cloud User Guide. *

* * @param modifyReservedInstancesRequest * Contains the parameters for ModifyReservedInstances. * @return Result of the ModifyReservedInstances operation returned by the service. * @sample AmazonEC2.ModifyReservedInstances * @see AWS * API Documentation */ @Override public ModifyReservedInstancesResult modifyReservedInstances(ModifyReservedInstancesRequest modifyReservedInstancesRequest) { ExecutionContext executionContext = createExecutionContext(modifyReservedInstancesRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new ModifyReservedInstancesResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* 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. *

* *

* 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. *

*
*

* For more information on modifying snapshot permissions, see Sharing * Snapshots in the Amazon Elastic Compute Cloud User Guide. *

* * @param modifySnapshotAttributeRequest * Contains the parameters for ModifySnapshotAttribute. * @return Result of the ModifySnapshotAttribute operation returned by the service. * @sample AmazonEC2.ModifySnapshotAttribute * @see AWS * API Documentation */ @Override public ModifySnapshotAttributeResult modifySnapshotAttribute(ModifySnapshotAttributeRequest modifySnapshotAttributeRequest) { ExecutionContext executionContext = createExecutionContext(modifySnapshotAttributeRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new ModifySnapshotAttributeResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Modifies the specified Spot fleet request. *

*

* While the Spot fleet request is being modified, it is in the modifying state. *

*

* 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 * lowestPrice, the Spot fleet launches instances using the Spot pool with the lowest price. If the * allocation strategy is diversified, the Spot fleet distributes the instances across the Spot pools. *

*

* 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 lowestPrice, the * Spot fleet terminates the instances with the highest price per unit. If the allocation strategy is * diversified, 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. *

* * @param modifySpotFleetRequestRequest * Contains the parameters for ModifySpotFleetRequest. * @return Result of the ModifySpotFleetRequest operation returned by the service. * @sample AmazonEC2.ModifySpotFleetRequest * @see AWS API * Documentation */ @Override public ModifySpotFleetRequestResult modifySpotFleetRequest(ModifySpotFleetRequestRequest modifySpotFleetRequestRequest) { ExecutionContext executionContext = createExecutionContext(modifySpotFleetRequestRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new ModifySpotFleetRequestResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Modifies a subnet attribute. You can only modify one attribute at a time. *

* * @param modifySubnetAttributeRequest * Contains the parameters for ModifySubnetAttribute. * @return Result of the ModifySubnetAttribute operation returned by the service. * @sample AmazonEC2.ModifySubnetAttribute * @see AWS API * Documentation */ @Override public ModifySubnetAttributeResult modifySubnetAttribute(ModifySubnetAttributeRequest modifySubnetAttributeRequest) { ExecutionContext executionContext = createExecutionContext(modifySubnetAttributeRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new ModifySubnetAttributeResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* 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 Modifying the Size, IOPS, or * Type of an EBS Volume on Linux. For more information about modifying an EBS volume running Windows, see Modifying the Size, IOPS, or * Type of an EBS Volume on Windows. *

*

* 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 Extending a Linux File System. For information about extending a Windows file system, see Extending a Windows File System. *

*

* You can use CloudWatch Events to check the status of a modification to an EBS volume. For information about * CloudWatch Events, see the Amazon CloudWatch * Events User Guide. You can also track the status of a modification using the * DescribeVolumesModifications API. For information about tracking status changes using either method, see * Monitoring * Volume Modifications. *

* *

* 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 Modifying the Size, IOPS, or * Type of an EBS Volume on Linux. For more information about modifying an EBS volume running Windows, see Modifying the Size, IOPS, or * Type of an EBS Volume on Windows. *

*
*

* 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. *

*
* * @param modifyVolumeRequest * @return Result of the ModifyVolume operation returned by the service. * @sample AmazonEC2.ModifyVolume * @see AWS API * Documentation */ @Override public ModifyVolumeResult modifyVolume(ModifyVolumeRequest modifyVolumeRequest) { ExecutionContext executionContext = createExecutionContext(modifyVolumeRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler(new ModifyVolumeResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Modifies a volume attribute. *

*

* 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. *

*

* 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. *

* * @param modifyVolumeAttributeRequest * Contains the parameters for ModifyVolumeAttribute. * @return Result of the ModifyVolumeAttribute operation returned by the service. * @sample AmazonEC2.ModifyVolumeAttribute * @see AWS API * Documentation */ @Override public ModifyVolumeAttributeResult modifyVolumeAttribute(ModifyVolumeAttributeRequest modifyVolumeAttributeRequest) { ExecutionContext executionContext = createExecutionContext(modifyVolumeAttributeRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new ModifyVolumeAttributeResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Modifies the specified attribute of the specified VPC. *

* * @param modifyVpcAttributeRequest * Contains the parameters for ModifyVpcAttribute. * @return Result of the ModifyVpcAttribute operation returned by the service. * @sample AmazonEC2.ModifyVpcAttribute * @see AWS API * Documentation */ @Override public ModifyVpcAttributeResult modifyVpcAttribute(ModifyVpcAttributeRequest modifyVpcAttributeRequest) { ExecutionContext executionContext = createExecutionContext(modifyVpcAttributeRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new ModifyVpcAttributeResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* 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. *

* * @param modifyVpcEndpointRequest * Contains the parameters for ModifyVpcEndpoint. * @return Result of the ModifyVpcEndpoint operation returned by the service. * @sample AmazonEC2.ModifyVpcEndpoint * @see AWS API * Documentation */ @Override public ModifyVpcEndpointResult modifyVpcEndpoint(ModifyVpcEndpointRequest modifyVpcEndpointRequest) { ExecutionContext executionContext = createExecutionContext(modifyVpcEndpointRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new ModifyVpcEndpointResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Modifies the VPC peering connection options on one side of a VPC peering connection. You can do the following: *

*
    *
  • *

    * 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. *

    *
  • *
  • *

    * Enable/disable communication over the peering connection between instances in your VPC and an EC2-Classic * instance that's linked to the peer VPC. *

    *
  • *
  • *

    * Enable/disable a local VPC to resolve public DNS hostnames to private IP addresses when queried from instances in * the peer VPC. *

    *
  • *
*

* 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 * DescribeVpcPeeringConnections command. *

* * @param modifyVpcPeeringConnectionOptionsRequest * @return Result of the ModifyVpcPeeringConnectionOptions operation returned by the service. * @sample AmazonEC2.ModifyVpcPeeringConnectionOptions * @see AWS API Documentation */ @Override public ModifyVpcPeeringConnectionOptionsResult modifyVpcPeeringConnectionOptions( ModifyVpcPeeringConnectionOptionsRequest modifyVpcPeeringConnectionOptionsRequest) { ExecutionContext executionContext = createExecutionContext(modifyVpcPeeringConnectionOptionsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new ModifyVpcPeeringConnectionOptionsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Enables detailed monitoring for a running instance. Otherwise, basic monitoring is enabled. For more information, * see Monitoring Your Instances * and Volumes in the Amazon Elastic Compute Cloud User Guide. *

*

* To disable detailed monitoring, see . *

* * @param monitorInstancesRequest * Contains the parameters for MonitorInstances. * @return Result of the MonitorInstances operation returned by the service. * @sample AmazonEC2.MonitorInstances * @see AWS API * Documentation */ @Override public MonitorInstancesResult monitorInstances(MonitorInstancesRequest monitorInstancesRequest) { ExecutionContext executionContext = createExecutionContext(monitorInstancesRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new MonitorInstancesResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* 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 RestoreAddressToClassic request. You cannot move an Elastic IP address that was originally * allocated for use in the EC2-VPC platform to the EC2-Classic platform. *

* * @param moveAddressToVpcRequest * Contains the parameters for MoveAddressToVpc. * @return Result of the MoveAddressToVpc operation returned by the service. * @sample AmazonEC2.MoveAddressToVpc * @see AWS API * Documentation */ @Override public MoveAddressToVpcResult moveAddressToVpc(MoveAddressToVpcRequest moveAddressToVpcRequest) { ExecutionContext executionContext = createExecutionContext(moveAddressToVpcRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new MoveAddressToVpcResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* 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. *

* * @param purchaseHostReservationRequest * @return Result of the PurchaseHostReservation operation returned by the service. * @sample AmazonEC2.PurchaseHostReservation * @see AWS * API Documentation */ @Override public PurchaseHostReservationResult purchaseHostReservation(PurchaseHostReservationRequest purchaseHostReservationRequest) { ExecutionContext executionContext = createExecutionContext(purchaseHostReservationRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new PurchaseHostReservationResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Purchases a Reserved Instance for use with your account. With Reserved Instances, you pay a lower hourly rate * compared to On-Demand instance pricing. *

*

* Use DescribeReservedInstancesOfferings 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 * DescribeReservedInstances. *

*

* For more information, see Reserved * Instances and Reserved * Instance Marketplace in the Amazon Elastic Compute Cloud User Guide. *

* * @param purchaseReservedInstancesOfferingRequest * Contains the parameters for PurchaseReservedInstancesOffering. * @return Result of the PurchaseReservedInstancesOffering operation returned by the service. * @sample AmazonEC2.PurchaseReservedInstancesOffering * @see AWS API Documentation */ @Override public PurchaseReservedInstancesOfferingResult purchaseReservedInstancesOffering( PurchaseReservedInstancesOfferingRequest purchaseReservedInstancesOfferingRequest) { ExecutionContext executionContext = createExecutionContext(purchaseReservedInstancesOfferingRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new PurchaseReservedInstancesOfferingResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Purchases one or more Scheduled Instances with the specified schedule. *

*

* 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 DescribeScheduledInstanceAvailability to check for * available schedules and obtain a purchase token. After you purchase a Scheduled Instance, you must call * RunScheduledInstances during each scheduled time period. *

*

* After you purchase a Scheduled Instance, you can't cancel, modify, or resell your purchase. *

* * @param purchaseScheduledInstancesRequest * Contains the parameters for PurchaseScheduledInstances. * @return Result of the PurchaseScheduledInstances operation returned by the service. * @sample AmazonEC2.PurchaseScheduledInstances * @see AWS * API Documentation */ @Override public PurchaseScheduledInstancesResult purchaseScheduledInstances(PurchaseScheduledInstancesRequest purchaseScheduledInstancesRequest) { ExecutionContext executionContext = createExecutionContext(purchaseScheduledInstancesRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new PurchaseScheduledInstancesResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* 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. *

*

* If an instance does not cleanly shut down within four minutes, Amazon EC2 performs a hard reboot. *

*

* For more information about troubleshooting, see Getting Console Output and * Rebooting Instances in the Amazon Elastic Compute Cloud User Guide. *

* * @param rebootInstancesRequest * Contains the parameters for RebootInstances. * @return Result of the RebootInstances operation returned by the service. * @sample AmazonEC2.RebootInstances * @see AWS API * Documentation */ @Override public RebootInstancesResult rebootInstances(RebootInstancesRequest rebootInstancesRequest) { ExecutionContext executionContext = createExecutionContext(rebootInstancesRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new RebootInstancesResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* 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 Creating Your Own AMIs in the * Amazon Elastic Compute Cloud User Guide. *

* *

* For Amazon EBS-backed instances, CreateImage creates and registers the AMI in a single request, so you * don't have to register the AMI yourself. *

*
*

* You can also use RegisterImage 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 Launching an * Instance from a Snapshot in the Amazon Elastic Compute Cloud User Guide. *

*

* You can't register an image where a secondary (non-root) snapshot has AWS Marketplace product codes. *

*

* 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 CreateImage. *

*

* 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. *

* * @param registerImageRequest * Contains the parameters for RegisterImage. * @return Result of the RegisterImage operation returned by the service. * @sample AmazonEC2.RegisterImage * @see AWS API * Documentation */ @Override public RegisterImageResult registerImage(RegisterImageRequest registerImageRequest) { ExecutionContext executionContext = createExecutionContext(registerImageRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler(new RegisterImageResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Rejects a VPC peering connection request. The VPC peering connection must be in the * pending-acceptance state. Use the DescribeVpcPeeringConnections 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 DeleteVpcPeeringConnection. *

* * @param rejectVpcPeeringConnectionRequest * Contains the parameters for RejectVpcPeeringConnection. * @return Result of the RejectVpcPeeringConnection operation returned by the service. * @sample AmazonEC2.RejectVpcPeeringConnection * @see AWS * API Documentation */ @Override public RejectVpcPeeringConnectionResult rejectVpcPeeringConnection(RejectVpcPeeringConnectionRequest rejectVpcPeeringConnectionRequest) { ExecutionContext executionContext = createExecutionContext(rejectVpcPeeringConnectionRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new RejectVpcPeeringConnectionResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Releases the specified Elastic IP address. *

*

* After releasing an Elastic IP address, it is released to the IP address pool and might be unavailable to you. Be * sure to update your DNS records and any servers or devices that communicate with the address. If you attempt to * release an Elastic IP address that you already released, you'll get an AuthFailure error if the * address is already allocated to another AWS account. *

*

* [EC2-Classic, default VPC] Releasing an Elastic IP address automatically disassociates it from any instance that * it's associated with. To disassociate an Elastic IP address without releasing it, use DisassociateAddress. *

*

* [Nondefault VPC] You must use DisassociateAddress to disassociate the Elastic IP address before you try to * release it. Otherwise, Amazon EC2 returns an error (InvalidIPAddress.InUse). *

* * @param releaseAddressRequest * Contains the parameters for ReleaseAddress. * @return Result of the ReleaseAddress operation returned by the service. * @sample AmazonEC2.ReleaseAddress * @see AWS API * Documentation */ @Override public ReleaseAddressResult releaseAddress(ReleaseAddressRequest releaseAddressRequest) { ExecutionContext executionContext = createExecutionContext(releaseAddressRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new ReleaseAddressResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* 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 released 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. *

*

* 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. *

*

* Released hosts will still appear in a DescribeHosts response. *

* * @param releaseHostsRequest * Contains the parameters for ReleaseHosts. * @return Result of the ReleaseHosts operation returned by the service. * @sample AmazonEC2.ReleaseHosts * @see AWS API * Documentation */ @Override public ReleaseHostsResult releaseHosts(ReleaseHostsRequest releaseHostsRequest) { ExecutionContext executionContext = createExecutionContext(releaseHostsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler(new ReleaseHostsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* 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. *

*

* Use DescribeIamInstanceProfileAssociations to get the association ID. *

* * @param replaceIamInstanceProfileAssociationRequest * @return Result of the ReplaceIamInstanceProfileAssociation operation returned by the service. * @sample AmazonEC2.ReplaceIamInstanceProfileAssociation * @see AWS API Documentation */ @Override public ReplaceIamInstanceProfileAssociationResult replaceIamInstanceProfileAssociation( ReplaceIamInstanceProfileAssociationRequest replaceIamInstanceProfileAssociationRequest) { ExecutionContext executionContext = createExecutionContext(replaceIamInstanceProfileAssociationRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new ReplaceIamInstanceProfileAssociationResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* 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 Network ACLs in the Amazon * Virtual Private Cloud User Guide. *

* * @param replaceNetworkAclAssociationRequest * Contains the parameters for ReplaceNetworkAclAssociation. * @return Result of the ReplaceNetworkAclAssociation operation returned by the service. * @sample AmazonEC2.ReplaceNetworkAclAssociation * @see AWS API Documentation */ @Override public ReplaceNetworkAclAssociationResult replaceNetworkAclAssociation(ReplaceNetworkAclAssociationRequest replaceNetworkAclAssociationRequest) { ExecutionContext executionContext = createExecutionContext(replaceNetworkAclAssociationRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new ReplaceNetworkAclAssociationResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Replaces an entry (rule) in a network ACL. For more information about network ACLs, see Network ACLs in the Amazon * Virtual Private Cloud User Guide. *

* * @param replaceNetworkAclEntryRequest * Contains the parameters for ReplaceNetworkAclEntry. * @return Result of the ReplaceNetworkAclEntry operation returned by the service. * @sample AmazonEC2.ReplaceNetworkAclEntry * @see AWS API * Documentation */ @Override public ReplaceNetworkAclEntryResult replaceNetworkAclEntry(ReplaceNetworkAclEntryRequest replaceNetworkAclEntryRequest) { ExecutionContext executionContext = createExecutionContext(replaceNetworkAclEntryRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new ReplaceNetworkAclEntryResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* 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. *

*

* For more information about route tables, see Route Tables in the * Amazon Virtual Private Cloud User Guide. *

* * @param replaceRouteRequest * Contains the parameters for ReplaceRoute. * @return Result of the ReplaceRoute operation returned by the service. * @sample AmazonEC2.ReplaceRoute * @see AWS API * Documentation */ @Override public ReplaceRouteResult replaceRoute(ReplaceRouteRequest replaceRouteRequest) { ExecutionContext executionContext = createExecutionContext(replaceRouteRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler(new ReplaceRouteResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* 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 Route Tables in the * Amazon Virtual Private Cloud User Guide. *

*

* 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. *

* * @param replaceRouteTableAssociationRequest * Contains the parameters for ReplaceRouteTableAssociation. * @return Result of the ReplaceRouteTableAssociation operation returned by the service. * @sample AmazonEC2.ReplaceRouteTableAssociation * @see AWS API Documentation */ @Override public ReplaceRouteTableAssociationResult replaceRouteTableAssociation(ReplaceRouteTableAssociationRequest replaceRouteTableAssociationRequest) { ExecutionContext executionContext = createExecutionContext(replaceRouteTableAssociationRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new ReplaceRouteTableAssociationResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Submits feedback about the status of an instance. The instance must be in the running state. If your * experience with the instance differs from the instance status returned by DescribeInstanceStatus, use * ReportInstanceStatus to report your experience with the instance. Amazon EC2 collects this information to * improve the accuracy of status checks. *

*

* Use of this action does not change the value returned by DescribeInstanceStatus. *

* * @param reportInstanceStatusRequest * Contains the parameters for ReportInstanceStatus. * @return Result of the ReportInstanceStatus operation returned by the service. * @sample AmazonEC2.ReportInstanceStatus * @see AWS API * Documentation */ @Override public ReportInstanceStatusResult reportInstanceStatus(ReportInstanceStatusRequest reportInstanceStatusRequest) { ExecutionContext executionContext = createExecutionContext(reportInstanceStatusRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new ReportInstanceStatusResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Creates a Spot fleet request. *

*

* You can submit a single request that includes multiple launch specifications that vary by instance type, AMI, * Availability Zone, or subnet. *

*

* 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. *

*

* 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. *

*

* For more information, see Spot Fleet Requests in the * Amazon Elastic Compute Cloud User Guide. *

* * @param requestSpotFleetRequest * Contains the parameters for RequestSpotFleet. * @return Result of the RequestSpotFleet operation returned by the service. * @sample AmazonEC2.RequestSpotFleet * @see AWS API * Documentation */ @Override public RequestSpotFleetResult requestSpotFleet(RequestSpotFleetRequest requestSpotFleetRequest) { ExecutionContext executionContext = createExecutionContext(requestSpotFleetRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new RequestSpotFleetResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* 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 Spot Instance Requests in the * Amazon Elastic Compute Cloud User Guide. *

* * @param requestSpotInstancesRequest * Contains the parameters for RequestSpotInstances. * @return Result of the RequestSpotInstances operation returned by the service. * @sample AmazonEC2.RequestSpotInstances * @see AWS API * Documentation */ @Override public RequestSpotInstancesResult requestSpotInstances(RequestSpotInstancesRequest requestSpotInstancesRequest) { ExecutionContext executionContext = createExecutionContext(requestSpotInstancesRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new RequestSpotInstancesResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Resets an attribute of an AMI to its default value. *

* *

* The productCodes attribute can't be reset. *

*
* * @param resetImageAttributeRequest * Contains the parameters for ResetImageAttribute. * @return Result of the ResetImageAttribute operation returned by the service. * @sample AmazonEC2.ResetImageAttribute * @see AWS API * Documentation */ @Override public ResetImageAttributeResult resetImageAttribute(ResetImageAttributeRequest resetImageAttributeRequest) { ExecutionContext executionContext = createExecutionContext(resetImageAttributeRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new ResetImageAttributeResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Resets an attribute of an instance to its default value. To reset the kernel or ramdisk * , the instance must be in a stopped state. To reset the sourceDestCheck, the instance can be either * running or stopped. *

*

* The sourceDestCheck attribute controls whether source/destination checking is enabled. The default * value is true, which means checking is enabled. This value must be false for a NAT * instance to perform NAT. For more information, see NAT Instances in the * Amazon Virtual Private Cloud User Guide. *

* * @param resetInstanceAttributeRequest * Contains the parameters for ResetInstanceAttribute. * @return Result of the ResetInstanceAttribute operation returned by the service. * @sample AmazonEC2.ResetInstanceAttribute * @see AWS API * Documentation */ @Override public ResetInstanceAttributeResult resetInstanceAttribute(ResetInstanceAttributeRequest resetInstanceAttributeRequest) { ExecutionContext executionContext = createExecutionContext(resetInstanceAttributeRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new ResetInstanceAttributeResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Resets a network interface attribute. You can specify only one attribute at a time. *

* * @param resetNetworkInterfaceAttributeRequest * Contains the parameters for ResetNetworkInterfaceAttribute. * @return Result of the ResetNetworkInterfaceAttribute operation returned by the service. * @sample AmazonEC2.ResetNetworkInterfaceAttribute * @see AWS API Documentation */ @Override public ResetNetworkInterfaceAttributeResult resetNetworkInterfaceAttribute(ResetNetworkInterfaceAttributeRequest resetNetworkInterfaceAttributeRequest) { ExecutionContext executionContext = createExecutionContext(resetNetworkInterfaceAttributeRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new ResetNetworkInterfaceAttributeResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Resets permission settings for the specified snapshot. *

*

* For more information on modifying snapshot permissions, see Sharing * Snapshots in the Amazon Elastic Compute Cloud User Guide. *

* * @param resetSnapshotAttributeRequest * Contains the parameters for ResetSnapshotAttribute. * @return Result of the ResetSnapshotAttribute operation returned by the service. * @sample AmazonEC2.ResetSnapshotAttribute * @see AWS API * Documentation */ @Override public ResetSnapshotAttributeResult resetSnapshotAttribute(ResetSnapshotAttributeRequest resetSnapshotAttributeRequest) { ExecutionContext executionContext = createExecutionContext(resetSnapshotAttributeRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new ResetSnapshotAttributeResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* 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. *

* * @param restoreAddressToClassicRequest * Contains the parameters for RestoreAddressToClassic. * @return Result of the RestoreAddressToClassic operation returned by the service. * @sample AmazonEC2.RestoreAddressToClassic * @see AWS * API Documentation */ @Override public RestoreAddressToClassicResult restoreAddressToClassic(RestoreAddressToClassicRequest restoreAddressToClassicRequest) { ExecutionContext executionContext = createExecutionContext(restoreAddressToClassicRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new RestoreAddressToClassicResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* [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. *

*

* 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. *

*

* Rule changes are propagated to instances within the security group as quickly as possible. However, a small delay * might occur. *

* * @param revokeSecurityGroupEgressRequest * Contains the parameters for RevokeSecurityGroupEgress. * @return Result of the RevokeSecurityGroupEgress operation returned by the service. * @sample AmazonEC2.RevokeSecurityGroupEgress * @see AWS * API Documentation */ @Override public RevokeSecurityGroupEgressResult revokeSecurityGroupEgress(RevokeSecurityGroupEgressRequest revokeSecurityGroupEgressRequest) { ExecutionContext executionContext = createExecutionContext(revokeSecurityGroupEgressRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new RevokeSecurityGroupEgressResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* 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. *

*

* 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. *

*

* Rule changes are propagated to instances within the security group as quickly as possible. However, a small delay * might occur. *

* * @param revokeSecurityGroupIngressRequest * Contains the parameters for RevokeSecurityGroupIngress. * @return Result of the RevokeSecurityGroupIngress operation returned by the service. * @sample AmazonEC2.RevokeSecurityGroupIngress * @see AWS * API Documentation */ @Override public RevokeSecurityGroupIngressResult revokeSecurityGroupIngress(RevokeSecurityGroupIngressRequest revokeSecurityGroupIngressRequest) { ExecutionContext executionContext = createExecutionContext(revokeSecurityGroupIngressRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new RevokeSecurityGroupIngressResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public RevokeSecurityGroupIngressResult revokeSecurityGroupIngress() { return revokeSecurityGroupIngress(new RevokeSecurityGroupIngressRequest()); } /** *

* Launches the specified number of instances using an AMI for which you have permissions. *

*

* You can specify a number of options, or leave the default options. The following rules apply: *

*
    *
  • *

    * [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. *

    *
  • *
  • *

    * [EC2-Classic] If don't specify an Availability Zone, we choose one for you. *

    *
  • *
  • *

    * 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 Instance Types * Available Only in a VPC. *

    *
  • *
  • *

    * [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. *

    *
  • *
  • *

    * Not all instance types support IPv6 addresses. For more information, see Instance Types. *

    *
  • *
  • *

    * If you don't specify a security group ID, we use the default security group. For more information, see Security Groups. *

    *
  • *
  • *

    * If any of the AMIs have a product code attached for which the user has not subscribed, the request fails. *

    *
  • *
*

* 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. *

*

* An instance is ready for you to use when it's in the running state. You can check the state of your * instance using DescribeInstances. After launch, you can apply tags to your running instance (requires a * resource ID). For more information, see CreateTags and Tagging Your Amazon EC2 Resources. *

*

* 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 Key * Pairs in the Amazon Elastic Compute Cloud User Guide. *

*

* For troubleshooting, see What To Do If * An Instance Immediately Terminates, and Troubleshooting * Connecting to Your Instance in the Amazon Elastic Compute Cloud User Guide. *

* * @param runInstancesRequest * Contains the parameters for RunInstances. * @return Result of the RunInstances operation returned by the service. * @sample AmazonEC2.RunInstances * @see AWS API * Documentation */ @Override public RunInstancesResult runInstances(RunInstancesRequest runInstancesRequest) { ExecutionContext executionContext = createExecutionContext(runInstancesRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler(new RunInstancesResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Launches the specified Scheduled Instances. *

*

* Before you can launch a Scheduled Instance, you must purchase it and obtain an identifier using * PurchaseScheduledInstances. *

*

* 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 Scheduled Instances in * the Amazon Elastic Compute Cloud User Guide. *

* * @param runScheduledInstancesRequest * Contains the parameters for RunScheduledInstances. * @return Result of the RunScheduledInstances operation returned by the service. * @sample AmazonEC2.RunScheduledInstances * @see AWS API * Documentation */ @Override public RunScheduledInstancesResult runScheduledInstances(RunScheduledInstancesRequest runScheduledInstancesRequest) { ExecutionContext executionContext = createExecutionContext(runScheduledInstancesRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new RunScheduledInstancesResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Starts an Amazon EBS-backed AMI that you've previously stopped. *

*

* 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. *

*

* 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. *

*

* Performing this operation on an instance that uses an instance store as its root device returns an error. *

*

* For more information, see Stopping * Instances in the Amazon Elastic Compute Cloud User Guide. *

* * @param startInstancesRequest * Contains the parameters for StartInstances. * @return Result of the StartInstances operation returned by the service. * @sample AmazonEC2.StartInstances * @see AWS API * Documentation */ @Override public StartInstancesResult startInstances(StartInstancesRequest startInstancesRequest) { ExecutionContext executionContext = createExecutionContext(startInstancesRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new StartInstancesResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Stops an Amazon EBS-backed instance. *

*

* 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. *

*

* You can't start or stop Spot instances, and you can't stop instance store-backed instances. *

*

* 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. *

*

* 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 Instance Lifecycle in * the Amazon Elastic Compute Cloud User Guide. *

*

* 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 Troubleshooting * Stopping Your Instance in the Amazon Elastic Compute Cloud User Guide. *

* * @param stopInstancesRequest * Contains the parameters for StopInstances. * @return Result of the StopInstances operation returned by the service. * @sample AmazonEC2.StopInstances * @see AWS API * Documentation */ @Override public StopInstancesResult stopInstances(StopInstancesRequest stopInstancesRequest) { ExecutionContext executionContext = createExecutionContext(stopInstancesRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler(new StopInstancesResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Shuts down one or more instances. This operation is idempotent; if you terminate an instance more than once, each * call succeeds. *

*

* If you specify multiple instances and the request fails (for example, because of a single incorrect instance ID), * none of the instances are terminated. *

*

* Terminated instances remain visible after termination (for approximately one hour). *

*

* By default, Amazon EC2 deletes all EBS volumes that were attached when the instance launched. Volumes attached * after instance launch continue running. *

*

* 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 DeleteOnTermination block device mapping parameter set to true are * automatically deleted. For more information about the differences between stopping and terminating instances, see * Instance Lifecycle * in the Amazon Elastic Compute Cloud User Guide. *

*

* For more information about troubleshooting, see Troubleshooting Terminating Your Instance in the Amazon Elastic Compute Cloud User Guide. *

* * @param terminateInstancesRequest * Contains the parameters for TerminateInstances. * @return Result of the TerminateInstances operation returned by the service. * @sample AmazonEC2.TerminateInstances * @see AWS API * Documentation */ @Override public TerminateInstancesResult terminateInstances(TerminateInstancesRequest terminateInstancesRequest) { ExecutionContext executionContext = createExecutionContext(terminateInstancesRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new TerminateInstancesResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Unassigns one or more IPv6 addresses from a network interface. *

* * @param unassignIpv6AddressesRequest * @return Result of the UnassignIpv6Addresses operation returned by the service. * @sample AmazonEC2.UnassignIpv6Addresses * @see AWS API * Documentation */ @Override public UnassignIpv6AddressesResult unassignIpv6Addresses(UnassignIpv6AddressesRequest unassignIpv6AddressesRequest) { ExecutionContext executionContext = createExecutionContext(unassignIpv6AddressesRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new UnassignIpv6AddressesResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Unassigns one or more secondary private IP addresses from a network interface. *

* * @param unassignPrivateIpAddressesRequest * Contains the parameters for UnassignPrivateIpAddresses. * @return Result of the UnassignPrivateIpAddresses operation returned by the service. * @sample AmazonEC2.UnassignPrivateIpAddresses * @see AWS * API Documentation */ @Override public UnassignPrivateIpAddressesResult unassignPrivateIpAddresses(UnassignPrivateIpAddressesRequest unassignPrivateIpAddressesRequest) { ExecutionContext executionContext = createExecutionContext(unassignPrivateIpAddressesRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( new UnassignPrivateIpAddressesResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Disables detailed monitoring for a running instance. For more information, see Monitoring Your Instances and * Volumes in the Amazon Elastic Compute Cloud User Guide. *

* * @param unmonitorInstancesRequest * Contains the parameters for UnmonitorInstances. * @return Result of the UnmonitorInstances operation returned by the service. * @sample AmazonEC2.UnmonitorInstances * @see AWS API * Documentation */ @Override public UnmonitorInstancesResult unmonitorInstances(UnmonitorInstancesRequest unmonitorInstancesRequest) { ExecutionContext executionContext = createExecutionContext(unmonitorInstancesRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response 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 responseHandler = new StaxResponseHandler( 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 DryRunResult dryRun(DryRunSupportedRequest request) throws AmazonServiceException, AmazonClientException { Request dryRunRequest = request.getDryRunRequest(); ExecutionContext executionContext = createExecutionContext(dryRunRequest); try { invoke(dryRunRequest, new StaxResponseHandler(new VoidStaxUnmarshaller()), 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(true, request, ase.getMessage(), ase); } else if (ase.getErrorCode().equals("UnauthorizedOperation") && ase.getStatusCode() == 403) { return new DryRunResult(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. *

* 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 Response invoke(Request request, HttpResponseHandler> 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 Response anonymousInvoke(Request request, HttpResponseHandler> 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 Response doInvoke(Request request, HttpResponseHandler> 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; } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy