com.amazonaws.services.ec2.AmazonEC2Async Maven / Gradle / Ivy
Show all versions of aws-java-sdk-osgi Show documentation
/*
 * Copyright 2010-2016 Amazon.com, Inc. or its affiliates. All Rights
 * Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License").
 * You may not use this file except in compliance with the License.
 * A copy of the License is located at
 *
 *  http://aws.amazon.com/apache2.0
 *
 * or in the "license" file accompanying this file. This file is distributed
 * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
 * express or implied. See the License for the specific language governing
 * permissions and limitations under the License.
 */
package com.amazonaws.services.ec2;
import com.amazonaws.services.ec2.model.*;
/**
 * Interface for accessing Amazon EC2 asynchronously. Each asynchronous method
 * will return a Java Future object representing the asynchronous operation;
 * overloads which accept an {@code AsyncHandler} can be used to receive
 * notification when an asynchronous operation 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.
 * 
 */
public interface AmazonEC2Async extends AmazonEC2 {
    /**
     * 
     * 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 A Java Future containing the result of the
     *         AcceptVpcPeeringConnection operation returned by the service.
     * @sample AmazonEC2Async.AcceptVpcPeeringConnection
     */
    java.util.concurrent.Future acceptVpcPeeringConnectionAsync(
            AcceptVpcPeeringConnectionRequest acceptVpcPeeringConnectionRequest);
    /**
     * 
     * 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.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the
     *         AcceptVpcPeeringConnection operation returned by the service.
     * @sample AmazonEC2AsyncHandler.AcceptVpcPeeringConnection
     */
    java.util.concurrent.Future acceptVpcPeeringConnectionAsync(
            AcceptVpcPeeringConnectionRequest acceptVpcPeeringConnectionRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * Simplified method form for invoking the AcceptVpcPeeringConnection
     * operation.
     *
     * @see #acceptVpcPeeringConnectionAsync(AcceptVpcPeeringConnectionRequest)
     */
    java.util.concurrent.Future acceptVpcPeeringConnectionAsync();
    /**
     * Simplified method form for invoking the AcceptVpcPeeringConnection
     * operation with an AsyncHandler.
     *
     * @see #acceptVpcPeeringConnectionAsync(AcceptVpcPeeringConnectionRequest,
     *      com.amazonaws.handlers.AsyncHandler)
     */
    java.util.concurrent.Future acceptVpcPeeringConnectionAsync(
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * 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 A Java Future containing the result of the AllocateAddress
     *         operation returned by the service.
     * @sample AmazonEC2Async.AllocateAddress
     */
    java.util.concurrent.Future allocateAddressAsync(
            AllocateAddressRequest allocateAddressRequest);
    /**
     * 
     * 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.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the AllocateAddress
     *         operation returned by the service.
     * @sample AmazonEC2AsyncHandler.AllocateAddress
     */
    java.util.concurrent.Future allocateAddressAsync(
            AllocateAddressRequest allocateAddressRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * Simplified method form for invoking the AllocateAddress operation.
     *
     * @see #allocateAddressAsync(AllocateAddressRequest)
     */
    java.util.concurrent.Future allocateAddressAsync();
    /**
     * Simplified method form for invoking the AllocateAddress operation with an
     * AsyncHandler.
     *
     * @see #allocateAddressAsync(AllocateAddressRequest,
     *      com.amazonaws.handlers.AsyncHandler)
     */
    java.util.concurrent.Future allocateAddressAsync(
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * 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 A Java Future containing the result of the AllocateHosts
     *         operation returned by the service.
     * @sample AmazonEC2Async.AllocateHosts
     */
    java.util.concurrent.Future allocateHostsAsync(
            AllocateHostsRequest allocateHostsRequest);
    /**
     * 
     * 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.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the AllocateHosts
     *         operation returned by the service.
     * @sample AmazonEC2AsyncHandler.AllocateHosts
     */
    java.util.concurrent.Future allocateHostsAsync(
            AllocateHostsRequest allocateHostsRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * 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 A Java Future containing the result of the
     *         AssignPrivateIpAddresses operation returned by the service.
     * @sample AmazonEC2Async.AssignPrivateIpAddresses
     */
    java.util.concurrent.Future assignPrivateIpAddressesAsync(
            AssignPrivateIpAddressesRequest assignPrivateIpAddressesRequest);
    /**
     * 
     * 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.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the
     *         AssignPrivateIpAddresses operation returned by the service.
     * @sample AmazonEC2AsyncHandler.AssignPrivateIpAddresses
     */
    java.util.concurrent.Future assignPrivateIpAddressesAsync(
            AssignPrivateIpAddressesRequest assignPrivateIpAddressesRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * 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.
     * 
     * 
     * @param associateAddressRequest
     *        Contains the parameters for AssociateAddress.
     * @return A Java Future containing the result of the AssociateAddress
     *         operation returned by the service.
     * @sample AmazonEC2Async.AssociateAddress
     */
    java.util.concurrent.Future associateAddressAsync(
            AssociateAddressRequest associateAddressRequest);
    /**
     * 
     * 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.
     * 
     * 
     * @param associateAddressRequest
     *        Contains the parameters for AssociateAddress.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the AssociateAddress
     *         operation returned by the service.
     * @sample AmazonEC2AsyncHandler.AssociateAddress
     */
    java.util.concurrent.Future associateAddressAsync(
            AssociateAddressRequest associateAddressRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * 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 A Java Future containing the result of the AssociateDhcpOptions
     *         operation returned by the service.
     * @sample AmazonEC2Async.AssociateDhcpOptions
     */
    java.util.concurrent.Future associateDhcpOptionsAsync(
            AssociateDhcpOptionsRequest associateDhcpOptionsRequest);
    /**
     * 
     * 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.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the AssociateDhcpOptions
     *         operation returned by the service.
     * @sample AmazonEC2AsyncHandler.AssociateDhcpOptions
     */
    java.util.concurrent.Future associateDhcpOptionsAsync(
            AssociateDhcpOptionsRequest associateDhcpOptionsRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * 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 A Java Future containing the result of the AssociateRouteTable
     *         operation returned by the service.
     * @sample AmazonEC2Async.AssociateRouteTable
     */
    java.util.concurrent.Future associateRouteTableAsync(
            AssociateRouteTableRequest associateRouteTableRequest);
    /**
     * 
     * 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.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the AssociateRouteTable
     *         operation returned by the service.
     * @sample AmazonEC2AsyncHandler.AssociateRouteTable
     */
    java.util.concurrent.Future associateRouteTableAsync(
            AssociateRouteTableRequest associateRouteTableRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * 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 A Java Future containing the result of the AttachClassicLinkVpc
     *         operation returned by the service.
     * @sample AmazonEC2Async.AttachClassicLinkVpc
     */
    java.util.concurrent.Future attachClassicLinkVpcAsync(
            AttachClassicLinkVpcRequest attachClassicLinkVpcRequest);
    /**
     * 
     * 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.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the AttachClassicLinkVpc
     *         operation returned by the service.
     * @sample AmazonEC2AsyncHandler.AttachClassicLinkVpc
     */
    java.util.concurrent.Future attachClassicLinkVpcAsync(
            AttachClassicLinkVpcRequest attachClassicLinkVpcRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * 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 A Java Future containing the result of the AttachInternetGateway
     *         operation returned by the service.
     * @sample AmazonEC2Async.AttachInternetGateway
     */
    java.util.concurrent.Future attachInternetGatewayAsync(
            AttachInternetGatewayRequest attachInternetGatewayRequest);
    /**
     * 
     * 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.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the AttachInternetGateway
     *         operation returned by the service.
     * @sample AmazonEC2AsyncHandler.AttachInternetGateway
     */
    java.util.concurrent.Future attachInternetGatewayAsync(
            AttachInternetGatewayRequest attachInternetGatewayRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * Attaches a network interface to an instance.
     * 
     * 
     * @param attachNetworkInterfaceRequest
     *        Contains the parameters for AttachNetworkInterface.
     * @return A Java Future containing the result of the AttachNetworkInterface
     *         operation returned by the service.
     * @sample AmazonEC2Async.AttachNetworkInterface
     */
    java.util.concurrent.Future attachNetworkInterfaceAsync(
            AttachNetworkInterfaceRequest attachNetworkInterfaceRequest);
    /**
     * 
     * Attaches a network interface to an instance.
     * 
     * 
     * @param attachNetworkInterfaceRequest
     *        Contains the parameters for AttachNetworkInterface.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the AttachNetworkInterface
     *         operation returned by the service.
     * @sample AmazonEC2AsyncHandler.AttachNetworkInterface
     */
    java.util.concurrent.Future attachNetworkInterfaceAsync(
            AttachNetworkInterfaceRequest attachNetworkInterfaceRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * 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 A Java Future containing the result of the AttachVolume operation
     *         returned by the service.
     * @sample AmazonEC2Async.AttachVolume
     */
    java.util.concurrent.Future attachVolumeAsync(
            AttachVolumeRequest attachVolumeRequest);
    /**
     * 
     * 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.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the AttachVolume operation
     *         returned by the service.
     * @sample AmazonEC2AsyncHandler.AttachVolume
     */
    java.util.concurrent.Future attachVolumeAsync(
            AttachVolumeRequest attachVolumeRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * 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 A Java Future containing the result of the AttachVpnGateway
     *         operation returned by the service.
     * @sample AmazonEC2Async.AttachVpnGateway
     */
    java.util.concurrent.Future attachVpnGatewayAsync(
            AttachVpnGatewayRequest attachVpnGatewayRequest);
    /**
     * 
     * 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.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the AttachVpnGateway
     *         operation returned by the service.
     * @sample AmazonEC2AsyncHandler.AttachVpnGateway
     */
    java.util.concurrent.Future attachVpnGatewayAsync(
            AttachVpnGatewayRequest attachVpnGatewayRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * [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 CIDR IP 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.
     * 
     * 
     * 
     * You can have up to 50 rules per security group (covering both ingress and
     * egress rules).
     * 
     *  
     * 
     * 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 A Java Future containing the result of the
     *         AuthorizeSecurityGroupEgress operation returned by the service.
     * @sample AmazonEC2Async.AuthorizeSecurityGroupEgress
     */
    java.util.concurrent.Future authorizeSecurityGroupEgressAsync(
            AuthorizeSecurityGroupEgressRequest authorizeSecurityGroupEgressRequest);
    /**
     * 
     * [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 CIDR IP 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.
     * 
     * 
     * 
     * You can have up to 50 rules per security group (covering both ingress and
     * egress rules).
     * 
     *  
     * 
     * 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.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the
     *         AuthorizeSecurityGroupEgress operation returned by the service.
     * @sample AmazonEC2AsyncHandler.AuthorizeSecurityGroupEgress
     */
    java.util.concurrent.Future authorizeSecurityGroupEgressAsync(
            AuthorizeSecurityGroupEgressRequest authorizeSecurityGroupEgressRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * Adds one or more ingress rules to a security group.
     * 
     * 
     * 
     * EC2-Classic: You can have up to 100 rules per group.
     * 
     * 
     * EC2-VPC: You can have up to 50 rules per group (covering both ingress and
     * egress rules).
     * 
     *  
     * 
     * 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 CIDR IP 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.
     * 
     * 
     * [EC2-VPC] This action gives one or more CIDR IP 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.
     * 
     * 
     * @param authorizeSecurityGroupIngressRequest
     *        Contains the parameters for AuthorizeSecurityGroupIngress.
     * @return A Java Future containing the result of the
     *         AuthorizeSecurityGroupIngress operation returned by the service.
     * @sample AmazonEC2Async.AuthorizeSecurityGroupIngress
     */
    java.util.concurrent.Future authorizeSecurityGroupIngressAsync(
            AuthorizeSecurityGroupIngressRequest authorizeSecurityGroupIngressRequest);
    /**
     * 
     * Adds one or more ingress rules to a security group.
     * 
     * 
     * 
     * EC2-Classic: You can have up to 100 rules per group.
     * 
     * 
     * EC2-VPC: You can have up to 50 rules per group (covering both ingress and
     * egress rules).
     * 
     *  
     * 
     * 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 CIDR IP 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.
     * 
     * 
     * [EC2-VPC] This action gives one or more CIDR IP 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.
     * 
     * 
     * @param authorizeSecurityGroupIngressRequest
     *        Contains the parameters for AuthorizeSecurityGroupIngress.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the
     *         AuthorizeSecurityGroupIngress operation returned by the service.
     * @sample AmazonEC2AsyncHandler.AuthorizeSecurityGroupIngress
     */
    java.util.concurrent.Future authorizeSecurityGroupIngressAsync(
            AuthorizeSecurityGroupIngressRequest authorizeSecurityGroupIngressRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * 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 A Java Future containing the result of the BundleInstance
     *         operation returned by the service.
     * @sample AmazonEC2Async.BundleInstance
     */
    java.util.concurrent.Future bundleInstanceAsync(
            BundleInstanceRequest bundleInstanceRequest);
    /**
     * 
     * 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.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the BundleInstance
     *         operation returned by the service.
     * @sample AmazonEC2AsyncHandler.BundleInstance
     */
    java.util.concurrent.Future bundleInstanceAsync(
            BundleInstanceRequest bundleInstanceRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * Cancels a bundling operation for an instance store-backed Windows
     * instance.
     * 
     * 
     * @param cancelBundleTaskRequest
     *        Contains the parameters for CancelBundleTask.
     * @return A Java Future containing the result of the CancelBundleTask
     *         operation returned by the service.
     * @sample AmazonEC2Async.CancelBundleTask
     */
    java.util.concurrent.Future cancelBundleTaskAsync(
            CancelBundleTaskRequest cancelBundleTaskRequest);
    /**
     * 
     * Cancels a bundling operation for an instance store-backed Windows
     * instance.
     * 
     * 
     * @param cancelBundleTaskRequest
     *        Contains the parameters for CancelBundleTask.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the CancelBundleTask
     *         operation returned by the service.
     * @sample AmazonEC2AsyncHandler.CancelBundleTask
     */
    java.util.concurrent.Future cancelBundleTaskAsync(
            CancelBundleTaskRequest cancelBundleTaskRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * 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 Using the Command Line Tools to Import Your Virtual Machine to Amazon
     * EC2 in the Amazon Elastic Compute Cloud User Guide.
     * 
     * 
     * @param cancelConversionTaskRequest
     *        Contains the parameters for CancelConversionTask.
     * @return A Java Future containing the result of the CancelConversionTask
     *         operation returned by the service.
     * @sample AmazonEC2Async.CancelConversionTask
     */
    java.util.concurrent.Future cancelConversionTaskAsync(
            CancelConversionTaskRequest cancelConversionTaskRequest);
    /**
     * 
     * 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 Using the Command Line Tools to Import Your Virtual Machine to Amazon
     * EC2 in the Amazon Elastic Compute Cloud User Guide.
     * 
     * 
     * @param cancelConversionTaskRequest
     *        Contains the parameters for CancelConversionTask.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the CancelConversionTask
     *         operation returned by the service.
     * @sample AmazonEC2AsyncHandler.CancelConversionTask
     */
    java.util.concurrent.Future cancelConversionTaskAsync(
            CancelConversionTaskRequest cancelConversionTaskRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * 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 A Java Future containing the result of the CancelExportTask
     *         operation returned by the service.
     * @sample AmazonEC2Async.CancelExportTask
     */
    java.util.concurrent.Future cancelExportTaskAsync(
            CancelExportTaskRequest cancelExportTaskRequest);
    /**
     * 
     * 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.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the CancelExportTask
     *         operation returned by the service.
     * @sample AmazonEC2AsyncHandler.CancelExportTask
     */
    java.util.concurrent.Future cancelExportTaskAsync(
            CancelExportTaskRequest cancelExportTaskRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * Cancels an in-process import virtual machine or import snapshot task.
     * 
     * 
     * @param cancelImportTaskRequest
     *        Contains the parameters for CancelImportTask.
     * @return A Java Future containing the result of the CancelImportTask
     *         operation returned by the service.
     * @sample AmazonEC2Async.CancelImportTask
     */
    java.util.concurrent.Future cancelImportTaskAsync(
            CancelImportTaskRequest cancelImportTaskRequest);
    /**
     * 
     * Cancels an in-process import virtual machine or import snapshot task.
     * 
     * 
     * @param cancelImportTaskRequest
     *        Contains the parameters for CancelImportTask.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the CancelImportTask
     *         operation returned by the service.
     * @sample AmazonEC2AsyncHandler.CancelImportTask
     */
    java.util.concurrent.Future cancelImportTaskAsync(
            CancelImportTaskRequest cancelImportTaskRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * Simplified method form for invoking the CancelImportTask operation.
     *
     * @see #cancelImportTaskAsync(CancelImportTaskRequest)
     */
    java.util.concurrent.Future cancelImportTaskAsync();
    /**
     * Simplified method form for invoking the CancelImportTask operation with
     * an AsyncHandler.
     *
     * @see #cancelImportTaskAsync(CancelImportTaskRequest,
     *      com.amazonaws.handlers.AsyncHandler)
     */
    java.util.concurrent.Future cancelImportTaskAsync(
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * 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 A Java Future containing the result of the
     *         CancelReservedInstancesListing operation returned by the service.
     * @sample AmazonEC2Async.CancelReservedInstancesListing
     */
    java.util.concurrent.Future cancelReservedInstancesListingAsync(
            CancelReservedInstancesListingRequest cancelReservedInstancesListingRequest);
    /**
     * 
     * 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.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the
     *         CancelReservedInstancesListing operation returned by the service.
     * @sample AmazonEC2AsyncHandler.CancelReservedInstancesListing
     */
    java.util.concurrent.Future cancelReservedInstancesListingAsync(
            CancelReservedInstancesListingRequest cancelReservedInstancesListingRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * 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 A Java Future containing the result of the
     *         CancelSpotFleetRequests operation returned by the service.
     * @sample AmazonEC2Async.CancelSpotFleetRequests
     */
    java.util.concurrent.Future cancelSpotFleetRequestsAsync(
            CancelSpotFleetRequestsRequest cancelSpotFleetRequestsRequest);
    /**
     * 
     * 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.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the
     *         CancelSpotFleetRequests operation returned by the service.
     * @sample AmazonEC2AsyncHandler.CancelSpotFleetRequests
     */
    java.util.concurrent.Future cancelSpotFleetRequestsAsync(
            CancelSpotFleetRequestsRequest cancelSpotFleetRequestsRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * 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 A Java Future containing the result of the
     *         CancelSpotInstanceRequests operation returned by the service.
     * @sample AmazonEC2Async.CancelSpotInstanceRequests
     */
    java.util.concurrent.Future cancelSpotInstanceRequestsAsync(
            CancelSpotInstanceRequestsRequest cancelSpotInstanceRequestsRequest);
    /**
     * 
     * 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.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the
     *         CancelSpotInstanceRequests operation returned by the service.
     * @sample AmazonEC2AsyncHandler.CancelSpotInstanceRequests
     */
    java.util.concurrent.Future cancelSpotInstanceRequestsAsync(
            CancelSpotInstanceRequestsRequest cancelSpotInstanceRequestsRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * 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 A Java Future containing the result of the ConfirmProductInstance
     *         operation returned by the service.
     * @sample AmazonEC2Async.ConfirmProductInstance
     */
    java.util.concurrent.Future confirmProductInstanceAsync(
            ConfirmProductInstanceRequest confirmProductInstanceRequest);
    /**
     * 
     * 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.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the ConfirmProductInstance
     *         operation returned by the service.
     * @sample AmazonEC2AsyncHandler.ConfirmProductInstance
     */
    java.util.concurrent.Future confirmProductInstanceAsync(
            ConfirmProductInstanceRequest confirmProductInstanceRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * 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 A Java Future containing the result of the CopyImage operation
     *         returned by the service.
     * @sample AmazonEC2Async.CopyImage
     */
    java.util.concurrent.Future copyImageAsync(
            CopyImageRequest copyImageRequest);
    /**
     * 
     * 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.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the CopyImage operation
     *         returned by the service.
     * @sample AmazonEC2AsyncHandler.CopyImage
     */
    java.util.concurrent.Future copyImageAsync(
            CopyImageRequest copyImageRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * 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.
     * 
     * 
     * 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 A Java Future containing the result of the CopySnapshot operation
     *         returned by the service.
     * @sample AmazonEC2Async.CopySnapshot
     */
    java.util.concurrent.Future copySnapshotAsync(
            CopySnapshotRequest copySnapshotRequest);
    /**
     * 
     * 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.
     * 
     * 
     * For more information, see Copying an Amazon EBS Snapshot in the Amazon Elastic Compute
     * Cloud User Guide.
     * 
     * 
     * @param copySnapshotRequest
     *        Contains the parameters for CopySnapshot.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the CopySnapshot operation
     *         returned by the service.
     * @sample AmazonEC2AsyncHandler.CopySnapshot
     */
    java.util.concurrent.Future copySnapshotAsync(
            CopySnapshotRequest copySnapshotRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * 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 A Java Future containing the result of the CreateCustomerGateway
     *         operation returned by the service.
     * @sample AmazonEC2Async.CreateCustomerGateway
     */
    java.util.concurrent.Future createCustomerGatewayAsync(
            CreateCustomerGatewayRequest createCustomerGatewayRequest);
    /**
     * 
     * 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.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the CreateCustomerGateway
     *         operation returned by the service.
     * @sample AmazonEC2AsyncHandler.CreateCustomerGateway
     */
    java.util.concurrent.Future createCustomerGatewayAsync(
            CreateCustomerGatewayRequest createCustomerGatewayRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * 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.
     * 
     *  
     * - 
     * 
     * 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"). 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 A Java Future containing the result of the CreateDhcpOptions
     *         operation returned by the service.
     * @sample AmazonEC2Async.CreateDhcpOptions
     */
    java.util.concurrent.Future createDhcpOptionsAsync(
            CreateDhcpOptionsRequest createDhcpOptionsRequest);
    /**
     * 
     * 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.
     * 
     *  
     * - 
     * 
     * 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"). 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.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the CreateDhcpOptions
     *         operation returned by the service.
     * @sample AmazonEC2AsyncHandler.CreateDhcpOptions
     */
    java.util.concurrent.Future createDhcpOptionsAsync(
            CreateDhcpOptionsRequest createDhcpOptionsRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * 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 A Java Future containing the result of the CreateFlowLogs
     *         operation returned by the service.
     * @sample AmazonEC2Async.CreateFlowLogs
     */
    java.util.concurrent.Future createFlowLogsAsync(
            CreateFlowLogsRequest createFlowLogsRequest);
    /**
     * 
     * 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.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the CreateFlowLogs
     *         operation returned by the service.
     * @sample AmazonEC2AsyncHandler.CreateFlowLogs
     */
    java.util.concurrent.Future createFlowLogsAsync(
            CreateFlowLogsRequest createFlowLogsRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * 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 A Java Future containing the result of the CreateImage operation
     *         returned by the service.
     * @sample AmazonEC2Async.CreateImage
     */
    java.util.concurrent.Future createImageAsync(
            CreateImageRequest createImageRequest);
    /**
     * 
     * 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.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the CreateImage operation
     *         returned by the service.
     * @sample AmazonEC2AsyncHandler.CreateImage
     */
    java.util.concurrent.Future createImageAsync(
            CreateImageRequest createImageRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * 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 EC2 Instances in the Amazon Elastic Compute Cloud User
     * Guide.
     * 
     * 
     * @param createInstanceExportTaskRequest
     *        Contains the parameters for CreateInstanceExportTask.
     * @return A Java Future containing the result of the
     *         CreateInstanceExportTask operation returned by the service.
     * @sample AmazonEC2Async.CreateInstanceExportTask
     */
    java.util.concurrent.Future createInstanceExportTaskAsync(
            CreateInstanceExportTaskRequest createInstanceExportTaskRequest);
    /**
     * 
     * 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 EC2 Instances in the Amazon Elastic Compute Cloud User
     * Guide.
     * 
     * 
     * @param createInstanceExportTaskRequest
     *        Contains the parameters for CreateInstanceExportTask.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the
     *         CreateInstanceExportTask operation returned by the service.
     * @sample AmazonEC2AsyncHandler.CreateInstanceExportTask
     */
    java.util.concurrent.Future createInstanceExportTaskAsync(
            CreateInstanceExportTaskRequest createInstanceExportTaskRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * 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 A Java Future containing the result of the CreateInternetGateway
     *         operation returned by the service.
     * @sample AmazonEC2Async.CreateInternetGateway
     */
    java.util.concurrent.Future createInternetGatewayAsync(
            CreateInternetGatewayRequest createInternetGatewayRequest);
    /**
     * 
     * 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.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the CreateInternetGateway
     *         operation returned by the service.
     * @sample AmazonEC2AsyncHandler.CreateInternetGateway
     */
    java.util.concurrent.Future createInternetGatewayAsync(
            CreateInternetGatewayRequest createInternetGatewayRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * Simplified method form for invoking the CreateInternetGateway operation.
     *
     * @see #createInternetGatewayAsync(CreateInternetGatewayRequest)
     */
    java.util.concurrent.Future createInternetGatewayAsync();
    /**
     * Simplified method form for invoking the CreateInternetGateway operation
     * with an AsyncHandler.
     *
     * @see #createInternetGatewayAsync(CreateInternetGatewayRequest,
     *      com.amazonaws.handlers.AsyncHandler)
     */
    java.util.concurrent.Future createInternetGatewayAsync(
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * 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 A Java Future containing the result of the CreateKeyPair
     *         operation returned by the service.
     * @sample AmazonEC2Async.CreateKeyPair
     */
    java.util.concurrent.Future createKeyPairAsync(
            CreateKeyPairRequest createKeyPairRequest);
    /**
     * 
     * 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.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the CreateKeyPair
     *         operation returned by the service.
     * @sample AmazonEC2AsyncHandler.CreateKeyPair
     */
    java.util.concurrent.Future createKeyPairAsync(
            CreateKeyPairRequest createKeyPairRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * 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 A Java Future containing the result of the CreateNatGateway
     *         operation returned by the service.
     * @sample AmazonEC2Async.CreateNatGateway
     */
    java.util.concurrent.Future createNatGatewayAsync(
            CreateNatGatewayRequest createNatGatewayRequest);
    /**
     * 
     * 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.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the CreateNatGateway
     *         operation returned by the service.
     * @sample AmazonEC2AsyncHandler.CreateNatGateway
     */
    java.util.concurrent.Future createNatGatewayAsync(
            CreateNatGatewayRequest createNatGatewayRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * 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 A Java Future containing the result of the CreateNetworkAcl
     *         operation returned by the service.
     * @sample AmazonEC2Async.CreateNetworkAcl
     */
    java.util.concurrent.Future createNetworkAclAsync(
            CreateNetworkAclRequest createNetworkAclRequest);
    /**
     * 
     * 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.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the CreateNetworkAcl
     *         operation returned by the service.
     * @sample AmazonEC2AsyncHandler.CreateNetworkAcl
     */
    java.util.concurrent.Future createNetworkAclAsync(
            CreateNetworkAclRequest createNetworkAclRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * 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 A Java Future containing the result of the CreateNetworkAclEntry
     *         operation returned by the service.
     * @sample AmazonEC2Async.CreateNetworkAclEntry
     */
    java.util.concurrent.Future createNetworkAclEntryAsync(
            CreateNetworkAclEntryRequest createNetworkAclEntryRequest);
    /**
     * 
     * 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.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the CreateNetworkAclEntry
     *         operation returned by the service.
     * @sample AmazonEC2AsyncHandler.CreateNetworkAclEntry
     */
    java.util.concurrent.Future createNetworkAclEntryAsync(
            CreateNetworkAclEntryRequest createNetworkAclEntryRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * Creates a network interface in the specified subnet.
     * 
     * 
     * For more information about network interfaces, see Elastic Network Interfaces in the Amazon Elastic Compute Cloud
     * User Guide.
     * 
     * 
     * @param createNetworkInterfaceRequest
     *        Contains the parameters for CreateNetworkInterface.
     * @return A Java Future containing the result of the CreateNetworkInterface
     *         operation returned by the service.
     * @sample AmazonEC2Async.CreateNetworkInterface
     */
    java.util.concurrent.Future createNetworkInterfaceAsync(
            CreateNetworkInterfaceRequest createNetworkInterfaceRequest);
    /**
     * 
     * Creates a network interface in the specified subnet.
     * 
     * 
     * For more information about network interfaces, see Elastic Network Interfaces in the Amazon Elastic Compute Cloud
     * User Guide.
     * 
     * 
     * @param createNetworkInterfaceRequest
     *        Contains the parameters for CreateNetworkInterface.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the CreateNetworkInterface
     *         operation returned by the service.
     * @sample AmazonEC2AsyncHandler.CreateNetworkInterface
     */
    java.util.concurrent.Future createNetworkInterfaceAsync(
            CreateNetworkInterfaceRequest createNetworkInterfaceRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * 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 A Java Future containing the result of the CreatePlacementGroup
     *         operation returned by the service.
     * @sample AmazonEC2Async.CreatePlacementGroup
     */
    java.util.concurrent.Future createPlacementGroupAsync(
            CreatePlacementGroupRequest createPlacementGroupRequest);
    /**
     * 
     * 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.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the CreatePlacementGroup
     *         operation returned by the service.
     * @sample AmazonEC2AsyncHandler.CreatePlacementGroup
     */
    java.util.concurrent.Future createPlacementGroupAsync(
            CreatePlacementGroupRequest createPlacementGroupRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * Creates a listing for Amazon EC2 Reserved Instances to be sold in the
     * Reserved Instance Marketplace. You can submit one Reserved Instance
     * listing at a time. To get a list of your Reserved Instances, you can use
     * the DescribeReservedInstances operation.
     * 
     * 
     * 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.
     * 
     * 
     * To sell your 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 Reserved Instances, and specify the upfront price to
     * receive for them. Your Reserved Instance listings then become available
     * for purchase. To view the details of your 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 A Java Future containing the result of the
     *         CreateReservedInstancesListing operation returned by the service.
     * @sample AmazonEC2Async.CreateReservedInstancesListing
     */
    java.util.concurrent.Future createReservedInstancesListingAsync(
            CreateReservedInstancesListingRequest createReservedInstancesListingRequest);
    /**
     * 
     * Creates a listing for Amazon EC2 Reserved Instances to be sold in the
     * Reserved Instance Marketplace. You can submit one Reserved Instance
     * listing at a time. To get a list of your Reserved Instances, you can use
     * the DescribeReservedInstances operation.
     * 
     * 
     * 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.
     * 
     * 
     * To sell your 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 Reserved Instances, and specify the upfront price to
     * receive for them. Your Reserved Instance listings then become available
     * for purchase. To view the details of your 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.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the
     *         CreateReservedInstancesListing operation returned by the service.
     * @sample AmazonEC2AsyncHandler.CreateReservedInstancesListing
     */
    java.util.concurrent.Future createReservedInstancesListingAsync(
            CreateReservedInstancesListingRequest createReservedInstancesListingRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * 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, or network interface.
     * 
     * 
     * When determining how to route traffic, we use the route with the most
     * specific match. For example, let's say the traffic is destined for
     * 192.0.2.3, and the route table includes the following two
     * 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 A Java Future containing the result of the CreateRoute operation
     *         returned by the service.
     * @sample AmazonEC2Async.CreateRoute
     */
    java.util.concurrent.Future createRouteAsync(
            CreateRouteRequest createRouteRequest);
    /**
     * 
     * 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, or network interface.
     * 
     * 
     * When determining how to route traffic, we use the route with the most
     * specific match. For example, let's say the traffic is destined for
     * 192.0.2.3, and the route table includes the following two
     * 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.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the CreateRoute operation
     *         returned by the service.
     * @sample AmazonEC2AsyncHandler.CreateRoute
     */
    java.util.concurrent.Future createRouteAsync(
            CreateRouteRequest createRouteRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * 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 A Java Future containing the result of the CreateRouteTable
     *         operation returned by the service.
     * @sample AmazonEC2Async.CreateRouteTable
     */
    java.util.concurrent.Future createRouteTableAsync(
            CreateRouteTableRequest createRouteTableRequest);
    /**
     * 
     * 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.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the CreateRouteTable
     *         operation returned by the service.
     * @sample AmazonEC2AsyncHandler.CreateRouteTable
     */
    java.util.concurrent.Future createRouteTableAsync(
            CreateRouteTableRequest createRouteTableRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * 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 A Java Future containing the result of the CreateSecurityGroup
     *         operation returned by the service.
     * @sample AmazonEC2Async.CreateSecurityGroup
     */
    java.util.concurrent.Future createSecurityGroupAsync(
            CreateSecurityGroupRequest createSecurityGroupRequest);
    /**
     * 
     * 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.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the CreateSecurityGroup
     *         operation returned by the service.
     * @sample AmazonEC2AsyncHandler.CreateSecurityGroup
     */
    java.util.concurrent.Future createSecurityGroupAsync(
            CreateSecurityGroupRequest createSecurityGroupRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * 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 A Java Future containing the result of the CreateSnapshot
     *         operation returned by the service.
     * @sample AmazonEC2Async.CreateSnapshot
     */
    java.util.concurrent.Future createSnapshotAsync(
            CreateSnapshotRequest createSnapshotRequest);
    /**
     * 
     * 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.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the CreateSnapshot
     *         operation returned by the service.
     * @sample AmazonEC2AsyncHandler.CreateSnapshot
     */
    java.util.concurrent.Future createSnapshotAsync(
            CreateSnapshotRequest createSnapshotRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * 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 A Java Future containing the result of the
     *         CreateSpotDatafeedSubscription operation returned by the service.
     * @sample AmazonEC2Async.CreateSpotDatafeedSubscription
     */
    java.util.concurrent.Future createSpotDatafeedSubscriptionAsync(
            CreateSpotDatafeedSubscriptionRequest createSpotDatafeedSubscriptionRequest);
    /**
     * 
     * 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.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the
     *         CreateSpotDatafeedSubscription operation returned by the service.
     * @sample AmazonEC2AsyncHandler.CreateSpotDatafeedSubscription
     */
    java.util.concurrent.Future createSpotDatafeedSubscriptionAsync(
            CreateSpotDatafeedSubscriptionRequest createSpotDatafeedSubscriptionRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * 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 CIDR block can be the same as the VPC's CIDR
     * block (assuming you want only a single subnet in the VPC), or a subset of
     * the VPC's CIDR block. If you create more than one subnet in a VPC, the
     * subnets' CIDR blocks must not overlap. The smallest subnet (and VPC) you
     * can create uses a /28 netmask (16 IP addresses), and the largest uses a
     * /16 netmask (65,536 IP addresses).
     * 
     * 
     * 
     * 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 A Java Future containing the result of the CreateSubnet operation
     *         returned by the service.
     * @sample AmazonEC2Async.CreateSubnet
     */
    java.util.concurrent.Future createSubnetAsync(
            CreateSubnetRequest createSubnetRequest);
    /**
     * 
     * 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 CIDR block can be the same as the VPC's CIDR
     * block (assuming you want only a single subnet in the VPC), or a subset of
     * the VPC's CIDR block. If you create more than one subnet in a VPC, the
     * subnets' CIDR blocks must not overlap. The smallest subnet (and VPC) you
     * can create uses a /28 netmask (16 IP addresses), and the largest uses a
     * /16 netmask (65,536 IP addresses).
     * 
     * 
     * 
     * 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.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the CreateSubnet operation
     *         returned by the service.
     * @sample AmazonEC2AsyncHandler.CreateSubnet
     */
    java.util.concurrent.Future createSubnetAsync(
            CreateSubnetRequest createSubnetRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * Adds or overwrites one or more tags for the specified Amazon EC2 resource
     * or resources. Each resource can have a maximum of 10 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 A Java Future containing the result of the CreateTags operation
     *         returned by the service.
     * @sample AmazonEC2Async.CreateTags
     */
    java.util.concurrent.Future createTagsAsync(
            CreateTagsRequest createTagsRequest);
    /**
     * 
     * Adds or overwrites one or more tags for the specified Amazon EC2 resource
     * or resources. Each resource can have a maximum of 10 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.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the CreateTags operation
     *         returned by the service.
     * @sample AmazonEC2AsyncHandler.CreateTags
     */
    java.util.concurrent.Future createTagsAsync(
            CreateTagsRequest createTagsRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * 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 A Java Future containing the result of the CreateVolume operation
     *         returned by the service.
     * @sample AmazonEC2Async.CreateVolume
     */
    java.util.concurrent.Future createVolumeAsync(
            CreateVolumeRequest createVolumeRequest);
    /**
     * 
     * 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.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the CreateVolume operation
     *         returned by the service.
     * @sample AmazonEC2AsyncHandler.CreateVolume
     */
    java.util.concurrent.Future createVolumeAsync(
            CreateVolumeRequest createVolumeRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * Creates a VPC with the specified CIDR block.
     * 
     * 
     * The smallest VPC you can create uses a /28 netmask (16 IP addresses), and
     * the largest uses a /16 netmask (65,536 IP addresses). To help you decide
     * how big to make your VPC, see Your VPC and Subnets in the Amazon Virtual Private Cloud User
     * Guide.
     * 
     * 
     * 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 Virtual Private Cloud User
     * Guide.
     * 
     * 
     * @param createVpcRequest
     *        Contains the parameters for CreateVpc.
     * @return A Java Future containing the result of the CreateVpc operation
     *         returned by the service.
     * @sample AmazonEC2Async.CreateVpc
     */
    java.util.concurrent.Future createVpcAsync(
            CreateVpcRequest createVpcRequest);
    /**
     * 
     * Creates a VPC with the specified CIDR block.
     * 
     * 
     * The smallest VPC you can create uses a /28 netmask (16 IP addresses), and
     * the largest uses a /16 netmask (65,536 IP addresses). To help you decide
     * how big to make your VPC, see Your VPC and Subnets in the Amazon Virtual Private Cloud User
     * Guide.
     * 
     * 
     * 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 Virtual Private Cloud User
     * Guide.
     * 
     * 
     * @param createVpcRequest
     *        Contains the parameters for CreateVpc.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the CreateVpc operation
     *         returned by the service.
     * @sample AmazonEC2AsyncHandler.CreateVpc
     */
    java.util.concurrent.Future createVpcAsync(
            CreateVpcRequest createVpcRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * 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.
     * 
     * 
     * Currently, only endpoints to Amazon S3 are supported.
     * 
     * 
     * @param createVpcEndpointRequest
     *        Contains the parameters for CreateVpcEndpoint.
     * @return A Java Future containing the result of the CreateVpcEndpoint
     *         operation returned by the service.
     * @sample AmazonEC2Async.CreateVpcEndpoint
     */
    java.util.concurrent.Future createVpcEndpointAsync(
            CreateVpcEndpointRequest createVpcEndpointRequest);
    /**
     * 
     * 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.
     * 
     * 
     * Currently, only endpoints to Amazon S3 are supported.
     * 
     * 
     * @param createVpcEndpointRequest
     *        Contains the parameters for CreateVpcEndpoint.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the CreateVpcEndpoint
     *         operation returned by the service.
     * @sample AmazonEC2AsyncHandler.CreateVpcEndpoint
     */
    java.util.concurrent.Future createVpcEndpointAsync(
            CreateVpcEndpointRequest createVpcEndpointRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * 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 A Java Future containing the result of the
     *         CreateVpcPeeringConnection operation returned by the service.
     * @sample AmazonEC2Async.CreateVpcPeeringConnection
     */
    java.util.concurrent.Future createVpcPeeringConnectionAsync(
            CreateVpcPeeringConnectionRequest createVpcPeeringConnectionRequest);
    /**
     * 
     * 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.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the
     *         CreateVpcPeeringConnection operation returned by the service.
     * @sample AmazonEC2AsyncHandler.CreateVpcPeeringConnection
     */
    java.util.concurrent.Future createVpcPeeringConnectionAsync(
            CreateVpcPeeringConnectionRequest createVpcPeeringConnectionRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * Simplified method form for invoking the CreateVpcPeeringConnection
     * operation.
     *
     * @see #createVpcPeeringConnectionAsync(CreateVpcPeeringConnectionRequest)
     */
    java.util.concurrent.Future createVpcPeeringConnectionAsync();
    /**
     * Simplified method form for invoking the CreateVpcPeeringConnection
     * operation with an AsyncHandler.
     *
     * @see #createVpcPeeringConnectionAsync(CreateVpcPeeringConnectionRequest,
     *      com.amazonaws.handlers.AsyncHandler)
     */
    java.util.concurrent.Future createVpcPeeringConnectionAsync(
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * 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 A Java Future containing the result of the CreateVpnConnection
     *         operation returned by the service.
     * @sample AmazonEC2Async.CreateVpnConnection
     */
    java.util.concurrent.Future createVpnConnectionAsync(
            CreateVpnConnectionRequest createVpnConnectionRequest);
    /**
     * 
     * 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.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the CreateVpnConnection
     *         operation returned by the service.
     * @sample AmazonEC2AsyncHandler.CreateVpnConnection
     */
    java.util.concurrent.Future createVpnConnectionAsync(
            CreateVpnConnectionRequest createVpnConnectionRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * 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 A Java Future containing the result of the
     *         CreateVpnConnectionRoute operation returned by the service.
     * @sample AmazonEC2Async.CreateVpnConnectionRoute
     */
    java.util.concurrent.Future createVpnConnectionRouteAsync(
            CreateVpnConnectionRouteRequest createVpnConnectionRouteRequest);
    /**
     * 
     * 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.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the
     *         CreateVpnConnectionRoute operation returned by the service.
     * @sample AmazonEC2AsyncHandler.CreateVpnConnectionRoute
     */
    java.util.concurrent.Future createVpnConnectionRouteAsync(
            CreateVpnConnectionRouteRequest createVpnConnectionRouteRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * 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 A Java Future containing the result of the CreateVpnGateway
     *         operation returned by the service.
     * @sample AmazonEC2Async.CreateVpnGateway
     */
    java.util.concurrent.Future createVpnGatewayAsync(
            CreateVpnGatewayRequest createVpnGatewayRequest);
    /**
     * 
     * 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.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the CreateVpnGateway
     *         operation returned by the service.
     * @sample AmazonEC2AsyncHandler.CreateVpnGateway
     */
    java.util.concurrent.Future createVpnGatewayAsync(
            CreateVpnGatewayRequest createVpnGatewayRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * 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 A Java Future containing the result of the DeleteCustomerGateway
     *         operation returned by the service.
     * @sample AmazonEC2Async.DeleteCustomerGateway
     */
    java.util.concurrent.Future deleteCustomerGatewayAsync(
            DeleteCustomerGatewayRequest deleteCustomerGatewayRequest);
    /**
     * 
     * 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.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the DeleteCustomerGateway
     *         operation returned by the service.
     * @sample AmazonEC2AsyncHandler.DeleteCustomerGateway
     */
    java.util.concurrent.Future deleteCustomerGatewayAsync(
            DeleteCustomerGatewayRequest deleteCustomerGatewayRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * 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 A Java Future containing the result of the DeleteDhcpOptions
     *         operation returned by the service.
     * @sample AmazonEC2Async.DeleteDhcpOptions
     */
    java.util.concurrent.Future deleteDhcpOptionsAsync(
            DeleteDhcpOptionsRequest deleteDhcpOptionsRequest);
    /**
     * 
     * 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.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the DeleteDhcpOptions
     *         operation returned by the service.
     * @sample AmazonEC2AsyncHandler.DeleteDhcpOptions
     */
    java.util.concurrent.Future deleteDhcpOptionsAsync(
            DeleteDhcpOptionsRequest deleteDhcpOptionsRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * Deletes one or more flow logs.
     * 
     * 
     * @param deleteFlowLogsRequest
     *        Contains the parameters for DeleteFlowLogs.
     * @return A Java Future containing the result of the DeleteFlowLogs
     *         operation returned by the service.
     * @sample AmazonEC2Async.DeleteFlowLogs
     */
    java.util.concurrent.Future deleteFlowLogsAsync(
            DeleteFlowLogsRequest deleteFlowLogsRequest);
    /**
     * 
     * Deletes one or more flow logs.
     * 
     * 
     * @param deleteFlowLogsRequest
     *        Contains the parameters for DeleteFlowLogs.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the DeleteFlowLogs
     *         operation returned by the service.
     * @sample AmazonEC2AsyncHandler.DeleteFlowLogs
     */
    java.util.concurrent.Future deleteFlowLogsAsync(
            DeleteFlowLogsRequest deleteFlowLogsRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * 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 A Java Future containing the result of the DeleteInternetGateway
     *         operation returned by the service.
     * @sample AmazonEC2Async.DeleteInternetGateway
     */
    java.util.concurrent.Future deleteInternetGatewayAsync(
            DeleteInternetGatewayRequest deleteInternetGatewayRequest);
    /**
     * 
     * 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.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the DeleteInternetGateway
     *         operation returned by the service.
     * @sample AmazonEC2AsyncHandler.DeleteInternetGateway
     */
    java.util.concurrent.Future deleteInternetGatewayAsync(
            DeleteInternetGatewayRequest deleteInternetGatewayRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * Deletes the specified key pair, by removing the public key from Amazon
     * EC2.
     * 
     * 
     * @param deleteKeyPairRequest
     *        Contains the parameters for DeleteKeyPair.
     * @return A Java Future containing the result of the DeleteKeyPair
     *         operation returned by the service.
     * @sample AmazonEC2Async.DeleteKeyPair
     */
    java.util.concurrent.Future deleteKeyPairAsync(
            DeleteKeyPairRequest deleteKeyPairRequest);
    /**
     * 
     * Deletes the specified key pair, by removing the public key from Amazon
     * EC2.
     * 
     * 
     * @param deleteKeyPairRequest
     *        Contains the parameters for DeleteKeyPair.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the DeleteKeyPair
     *         operation returned by the service.
     * @sample AmazonEC2AsyncHandler.DeleteKeyPair
     */
    java.util.concurrent.Future deleteKeyPairAsync(
            DeleteKeyPairRequest deleteKeyPairRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * 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 A Java Future containing the result of the DeleteNatGateway
     *         operation returned by the service.
     * @sample AmazonEC2Async.DeleteNatGateway
     */
    java.util.concurrent.Future deleteNatGatewayAsync(
            DeleteNatGatewayRequest deleteNatGatewayRequest);
    /**
     * 
     * 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.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the DeleteNatGateway
     *         operation returned by the service.
     * @sample AmazonEC2AsyncHandler.DeleteNatGateway
     */
    java.util.concurrent.Future deleteNatGatewayAsync(
            DeleteNatGatewayRequest deleteNatGatewayRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * 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 A Java Future containing the result of the DeleteNetworkAcl
     *         operation returned by the service.
     * @sample AmazonEC2Async.DeleteNetworkAcl
     */
    java.util.concurrent.Future deleteNetworkAclAsync(
            DeleteNetworkAclRequest deleteNetworkAclRequest);
    /**
     * 
     * 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.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the DeleteNetworkAcl
     *         operation returned by the service.
     * @sample AmazonEC2AsyncHandler.DeleteNetworkAcl
     */
    java.util.concurrent.Future deleteNetworkAclAsync(
            DeleteNetworkAclRequest deleteNetworkAclRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * Deletes the specified ingress or egress entry (rule) from the specified
     * network ACL.
     * 
     * 
     * @param deleteNetworkAclEntryRequest
     *        Contains the parameters for DeleteNetworkAclEntry.
     * @return A Java Future containing the result of the DeleteNetworkAclEntry
     *         operation returned by the service.
     * @sample AmazonEC2Async.DeleteNetworkAclEntry
     */
    java.util.concurrent.Future deleteNetworkAclEntryAsync(
            DeleteNetworkAclEntryRequest deleteNetworkAclEntryRequest);
    /**
     * 
     * Deletes the specified ingress or egress entry (rule) from the specified
     * network ACL.
     * 
     * 
     * @param deleteNetworkAclEntryRequest
     *        Contains the parameters for DeleteNetworkAclEntry.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the DeleteNetworkAclEntry
     *         operation returned by the service.
     * @sample AmazonEC2AsyncHandler.DeleteNetworkAclEntry
     */
    java.util.concurrent.Future deleteNetworkAclEntryAsync(
            DeleteNetworkAclEntryRequest deleteNetworkAclEntryRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * Deletes the specified network interface. You must detach the network
     * interface before you can delete it.
     * 
     * 
     * @param deleteNetworkInterfaceRequest
     *        Contains the parameters for DeleteNetworkInterface.
     * @return A Java Future containing the result of the DeleteNetworkInterface
     *         operation returned by the service.
     * @sample AmazonEC2Async.DeleteNetworkInterface
     */
    java.util.concurrent.Future deleteNetworkInterfaceAsync(
            DeleteNetworkInterfaceRequest deleteNetworkInterfaceRequest);
    /**
     * 
     * Deletes the specified network interface. You must detach the network
     * interface before you can delete it.
     * 
     * 
     * @param deleteNetworkInterfaceRequest
     *        Contains the parameters for DeleteNetworkInterface.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the DeleteNetworkInterface
     *         operation returned by the service.
     * @sample AmazonEC2AsyncHandler.DeleteNetworkInterface
     */
    java.util.concurrent.Future deleteNetworkInterfaceAsync(
            DeleteNetworkInterfaceRequest deleteNetworkInterfaceRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * 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 A Java Future containing the result of the DeletePlacementGroup
     *         operation returned by the service.
     * @sample AmazonEC2Async.DeletePlacementGroup
     */
    java.util.concurrent.Future deletePlacementGroupAsync(
            DeletePlacementGroupRequest deletePlacementGroupRequest);
    /**
     * 
     * 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.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the DeletePlacementGroup
     *         operation returned by the service.
     * @sample AmazonEC2AsyncHandler.DeletePlacementGroup
     */
    java.util.concurrent.Future deletePlacementGroupAsync(
            DeletePlacementGroupRequest deletePlacementGroupRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * Deletes the specified route from the specified route table.
     * 
     * 
     * @param deleteRouteRequest
     *        Contains the parameters for DeleteRoute.
     * @return A Java Future containing the result of the DeleteRoute operation
     *         returned by the service.
     * @sample AmazonEC2Async.DeleteRoute
     */
    java.util.concurrent.Future deleteRouteAsync(
            DeleteRouteRequest deleteRouteRequest);
    /**
     * 
     * Deletes the specified route from the specified route table.
     * 
     * 
     * @param deleteRouteRequest
     *        Contains the parameters for DeleteRoute.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the DeleteRoute operation
     *         returned by the service.
     * @sample AmazonEC2AsyncHandler.DeleteRoute
     */
    java.util.concurrent.Future deleteRouteAsync(
            DeleteRouteRequest deleteRouteRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * 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 A Java Future containing the result of the DeleteRouteTable
     *         operation returned by the service.
     * @sample AmazonEC2Async.DeleteRouteTable
     */
    java.util.concurrent.Future deleteRouteTableAsync(
            DeleteRouteTableRequest deleteRouteTableRequest);
    /**
     * 
     * 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.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the DeleteRouteTable
     *         operation returned by the service.
     * @sample AmazonEC2AsyncHandler.DeleteRouteTable
     */
    java.util.concurrent.Future deleteRouteTableAsync(
            DeleteRouteTableRequest deleteRouteTableRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * 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 A Java Future containing the result of the DeleteSecurityGroup
     *         operation returned by the service.
     * @sample AmazonEC2Async.DeleteSecurityGroup
     */
    java.util.concurrent.Future deleteSecurityGroupAsync(
            DeleteSecurityGroupRequest deleteSecurityGroupRequest);
    /**
     * 
     * 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.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the DeleteSecurityGroup
     *         operation returned by the service.
     * @sample AmazonEC2AsyncHandler.DeleteSecurityGroup
     */
    java.util.concurrent.Future deleteSecurityGroupAsync(
            DeleteSecurityGroupRequest deleteSecurityGroupRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * 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 A Java Future containing the result of the DeleteSnapshot
     *         operation returned by the service.
     * @sample AmazonEC2Async.DeleteSnapshot
     */
    java.util.concurrent.Future deleteSnapshotAsync(
            DeleteSnapshotRequest deleteSnapshotRequest);
    /**
     * 
     * 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.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the DeleteSnapshot
     *         operation returned by the service.
     * @sample AmazonEC2AsyncHandler.DeleteSnapshot
     */
    java.util.concurrent.Future deleteSnapshotAsync(
            DeleteSnapshotRequest deleteSnapshotRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * Deletes the data feed for Spot instances.
     * 
     * 
     * @param deleteSpotDatafeedSubscriptionRequest
     *        Contains the parameters for DeleteSpotDatafeedSubscription.
     * @return A Java Future containing the result of the
     *         DeleteSpotDatafeedSubscription operation returned by the service.
     * @sample AmazonEC2Async.DeleteSpotDatafeedSubscription
     */
    java.util.concurrent.Future deleteSpotDatafeedSubscriptionAsync(
            DeleteSpotDatafeedSubscriptionRequest deleteSpotDatafeedSubscriptionRequest);
    /**
     * 
     * Deletes the data feed for Spot instances.
     * 
     * 
     * @param deleteSpotDatafeedSubscriptionRequest
     *        Contains the parameters for DeleteSpotDatafeedSubscription.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the
     *         DeleteSpotDatafeedSubscription operation returned by the service.
     * @sample AmazonEC2AsyncHandler.DeleteSpotDatafeedSubscription
     */
    java.util.concurrent.Future deleteSpotDatafeedSubscriptionAsync(
            DeleteSpotDatafeedSubscriptionRequest deleteSpotDatafeedSubscriptionRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * Simplified method form for invoking the DeleteSpotDatafeedSubscription
     * operation.
     *
     * @see #deleteSpotDatafeedSubscriptionAsync(DeleteSpotDatafeedSubscriptionRequest)
     */
    java.util.concurrent.Future deleteSpotDatafeedSubscriptionAsync();
    /**
     * Simplified method form for invoking the DeleteSpotDatafeedSubscription
     * operation with an AsyncHandler.
     *
     * @see #deleteSpotDatafeedSubscriptionAsync(DeleteSpotDatafeedSubscriptionRequest,
     *      com.amazonaws.handlers.AsyncHandler)
     */
    java.util.concurrent.Future deleteSpotDatafeedSubscriptionAsync(
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * 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 A Java Future containing the result of the DeleteSubnet operation
     *         returned by the service.
     * @sample AmazonEC2Async.DeleteSubnet
     */
    java.util.concurrent.Future deleteSubnetAsync(
            DeleteSubnetRequest deleteSubnetRequest);
    /**
     * 
     * 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.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the DeleteSubnet operation
     *         returned by the service.
     * @sample AmazonEC2AsyncHandler.DeleteSubnet
     */
    java.util.concurrent.Future deleteSubnetAsync(
            DeleteSubnetRequest deleteSubnetRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * 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 A Java Future containing the result of the DeleteTags operation
     *         returned by the service.
     * @sample AmazonEC2Async.DeleteTags
     */
    java.util.concurrent.Future deleteTagsAsync(
            DeleteTagsRequest deleteTagsRequest);
    /**
     * 
     * 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.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the DeleteTags operation
     *         returned by the service.
     * @sample AmazonEC2AsyncHandler.DeleteTags
     */
    java.util.concurrent.Future deleteTagsAsync(
            DeleteTagsRequest deleteTagsRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * 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 A Java Future containing the result of the DeleteVolume operation
     *         returned by the service.
     * @sample AmazonEC2Async.DeleteVolume
     */
    java.util.concurrent.Future deleteVolumeAsync(
            DeleteVolumeRequest deleteVolumeRequest);
    /**
     * 
     * 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.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the DeleteVolume operation
     *         returned by the service.
     * @sample AmazonEC2AsyncHandler.DeleteVolume
     */
    java.util.concurrent.Future deleteVolumeAsync(
            DeleteVolumeRequest deleteVolumeRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * 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 A Java Future containing the result of the DeleteVpc operation
     *         returned by the service.
     * @sample AmazonEC2Async.DeleteVpc
     */
    java.util.concurrent.Future deleteVpcAsync(
            DeleteVpcRequest deleteVpcRequest);
    /**
     * 
     * 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.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the DeleteVpc operation
     *         returned by the service.
     * @sample AmazonEC2AsyncHandler.DeleteVpc
     */
    java.util.concurrent.Future deleteVpcAsync(
            DeleteVpcRequest deleteVpcRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * 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 A Java Future containing the result of the DeleteVpcEndpoints
     *         operation returned by the service.
     * @sample AmazonEC2Async.DeleteVpcEndpoints
     */
    java.util.concurrent.Future deleteVpcEndpointsAsync(
            DeleteVpcEndpointsRequest deleteVpcEndpointsRequest);
    /**
     * 
     * 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.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the DeleteVpcEndpoints
     *         operation returned by the service.
     * @sample AmazonEC2AsyncHandler.DeleteVpcEndpoints
     */
    java.util.concurrent.Future deleteVpcEndpointsAsync(
            DeleteVpcEndpointsRequest deleteVpcEndpointsRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * 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 A Java Future containing the result of the
     *         DeleteVpcPeeringConnection operation returned by the service.
     * @sample AmazonEC2Async.DeleteVpcPeeringConnection
     */
    java.util.concurrent.Future deleteVpcPeeringConnectionAsync(
            DeleteVpcPeeringConnectionRequest deleteVpcPeeringConnectionRequest);
    /**
     * 
     * 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.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the
     *         DeleteVpcPeeringConnection operation returned by the service.
     * @sample AmazonEC2AsyncHandler.DeleteVpcPeeringConnection
     */
    java.util.concurrent.Future deleteVpcPeeringConnectionAsync(
            DeleteVpcPeeringConnectionRequest deleteVpcPeeringConnectionRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * 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 A Java Future containing the result of the DeleteVpnConnection
     *         operation returned by the service.
     * @sample AmazonEC2Async.DeleteVpnConnection
     */
    java.util.concurrent.Future deleteVpnConnectionAsync(
            DeleteVpnConnectionRequest deleteVpnConnectionRequest);
    /**
     * 
     * 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.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the DeleteVpnConnection
     *         operation returned by the service.
     * @sample AmazonEC2AsyncHandler.DeleteVpnConnection
     */
    java.util.concurrent.Future deleteVpnConnectionAsync(
            DeleteVpnConnectionRequest deleteVpnConnectionRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * 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 A Java Future containing the result of the
     *         DeleteVpnConnectionRoute operation returned by the service.
     * @sample AmazonEC2Async.DeleteVpnConnectionRoute
     */
    java.util.concurrent.Future deleteVpnConnectionRouteAsync(
            DeleteVpnConnectionRouteRequest deleteVpnConnectionRouteRequest);
    /**
     * 
     * 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.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the
     *         DeleteVpnConnectionRoute operation returned by the service.
     * @sample AmazonEC2AsyncHandler.DeleteVpnConnectionRoute
     */
    java.util.concurrent.Future deleteVpnConnectionRouteAsync(
            DeleteVpnConnectionRouteRequest deleteVpnConnectionRouteRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * 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 A Java Future containing the result of the DeleteVpnGateway
     *         operation returned by the service.
     * @sample AmazonEC2Async.DeleteVpnGateway
     */
    java.util.concurrent.Future deleteVpnGatewayAsync(
            DeleteVpnGatewayRequest deleteVpnGatewayRequest);
    /**
     * 
     * 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.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the DeleteVpnGateway
     *         operation returned by the service.
     * @sample AmazonEC2AsyncHandler.DeleteVpnGateway
     */
    java.util.concurrent.Future deleteVpnGatewayAsync(
            DeleteVpnGatewayRequest deleteVpnGatewayRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * 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 A Java Future containing the result of the DeregisterImage
     *         operation returned by the service.
     * @sample AmazonEC2Async.DeregisterImage
     */
    java.util.concurrent.Future deregisterImageAsync(
            DeregisterImageRequest deregisterImageRequest);
    /**
     * 
     * 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.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the DeregisterImage
     *         operation returned by the service.
     * @sample AmazonEC2AsyncHandler.DeregisterImage
     */
    java.util.concurrent.Future deregisterImageAsync(
            DeregisterImageRequest deregisterImageRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * Describes attributes of your AWS account. The following are the supported
     * account attributes:
     * 
     * 
     *