/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include
#include
#include
#include
#include
#include
#include
namespace Aws
{
namespace EC2
{
/**
* Amazon Elastic Compute Cloud Amazon Elastic Compute
* Cloud (Amazon EC2) provides secure and resizable computing capacity in the
* Amazon Web Services Cloud. Using Amazon EC2 eliminates the need to invest in
* hardware up front, so you can develop and deploy applications faster. Amazon
* Virtual Private Cloud (Amazon VPC) enables you to provision a logically isolated
* section of the Amazon Web Services Cloud where you can launch Amazon Web
* Services resources in a virtual network that you've defined. Amazon Elastic
* Block Store (Amazon EBS) provides block level storage volumes for use with EC2
* instances. EBS volumes are highly available and reliable storage volumes that
* can be attached to any running instance and used like a hard drive.
To
* learn more, see the following resources:
*/
class AWS_EC2_API EC2Client : public Aws::Client::AWSXMLClient, public Aws::Client::ClientWithAsyncTemplateMethods
{
public:
typedef Aws::Client::AWSXMLClient BASECLASS;
static const char* SERVICE_NAME;
static const char* ALLOCATION_TAG;
typedef EC2ClientConfiguration ClientConfigurationType;
typedef EC2EndpointProvider EndpointProviderType;
/**
* Initializes client to use DefaultCredentialProviderChain, with default http client factory, and optional client config. If client config
* is not specified, it will be initialized to default values.
*/
EC2Client(const Aws::EC2::EC2ClientConfiguration& clientConfiguration = Aws::EC2::EC2ClientConfiguration(),
std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG));
/**
* Initializes client to use SimpleAWSCredentialsProvider, with default http client factory, and optional client config. If client config
* is not specified, it will be initialized to default values.
*/
EC2Client(const Aws::Auth::AWSCredentials& credentials,
std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG),
const Aws::EC2::EC2ClientConfiguration& clientConfiguration = Aws::EC2::EC2ClientConfiguration());
/**
* Initializes client to use specified credentials provider with specified client config. If http client factory is not supplied,
* the default http client factory will be used
*/
EC2Client(const std::shared_ptr& credentialsProvider,
std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG),
const Aws::EC2::EC2ClientConfiguration& clientConfiguration = Aws::EC2::EC2ClientConfiguration());
/* Legacy constructors due deprecation */
/**
* Initializes client to use DefaultCredentialProviderChain, with default http client factory, and optional client config. If client config
* is not specified, it will be initialized to default values.
*/
EC2Client(const Aws::Client::ClientConfiguration& clientConfiguration);
/**
* Initializes client to use SimpleAWSCredentialsProvider, with default http client factory, and optional client config. If client config
* is not specified, it will be initialized to default values.
*/
EC2Client(const Aws::Auth::AWSCredentials& credentials,
const Aws::Client::ClientConfiguration& clientConfiguration);
/**
* Initializes client to use specified credentials provider with specified client config. If http client factory is not supplied,
* the default http client factory will be used
*/
EC2Client(const std::shared_ptr& credentialsProvider,
const Aws::Client::ClientConfiguration& clientConfiguration);
/* End of legacy constructors due deprecation */
virtual ~EC2Client();
/**
* Accepts an Elastic IP address transfer. For more information, see Accept
* a transferred Elastic IP address in the Amazon Virtual Private Cloud User
* Guide.
See Also:
AWS
* API Reference
*/
virtual Model::AcceptAddressTransferOutcome AcceptAddressTransfer(const Model::AcceptAddressTransferRequest& request) const;
/**
* A Callable wrapper for AcceptAddressTransfer that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::AcceptAddressTransferOutcomeCallable AcceptAddressTransferCallable(const AcceptAddressTransferRequestT& request) const
{
return SubmitCallable(&EC2Client::AcceptAddressTransfer, request);
}
/**
* An Async wrapper for AcceptAddressTransfer that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void AcceptAddressTransferAsync(const AcceptAddressTransferRequestT& request, const AcceptAddressTransferResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::AcceptAddressTransfer, request, handler, context);
}
/**
* Accepts the Convertible Reserved Instance exchange quote described in the
* GetReservedInstancesExchangeQuote call.
See Also:
AWS
* API Reference
*/
virtual Model::AcceptReservedInstancesExchangeQuoteOutcome AcceptReservedInstancesExchangeQuote(const Model::AcceptReservedInstancesExchangeQuoteRequest& request) const;
/**
* A Callable wrapper for AcceptReservedInstancesExchangeQuote that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::AcceptReservedInstancesExchangeQuoteOutcomeCallable AcceptReservedInstancesExchangeQuoteCallable(const AcceptReservedInstancesExchangeQuoteRequestT& request) const
{
return SubmitCallable(&EC2Client::AcceptReservedInstancesExchangeQuote, request);
}
/**
* An Async wrapper for AcceptReservedInstancesExchangeQuote that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void AcceptReservedInstancesExchangeQuoteAsync(const AcceptReservedInstancesExchangeQuoteRequestT& request, const AcceptReservedInstancesExchangeQuoteResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::AcceptReservedInstancesExchangeQuote, request, handler, context);
}
/**
* Accepts a request to associate subnets with a transit gateway multicast
* domain.
See Also:
AWS
* API Reference
*/
virtual Model::AcceptTransitGatewayMulticastDomainAssociationsOutcome AcceptTransitGatewayMulticastDomainAssociations(const Model::AcceptTransitGatewayMulticastDomainAssociationsRequest& request) const;
/**
* A Callable wrapper for AcceptTransitGatewayMulticastDomainAssociations that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::AcceptTransitGatewayMulticastDomainAssociationsOutcomeCallable AcceptTransitGatewayMulticastDomainAssociationsCallable(const AcceptTransitGatewayMulticastDomainAssociationsRequestT& request) const
{
return SubmitCallable(&EC2Client::AcceptTransitGatewayMulticastDomainAssociations, request);
}
/**
* An Async wrapper for AcceptTransitGatewayMulticastDomainAssociations that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void AcceptTransitGatewayMulticastDomainAssociationsAsync(const AcceptTransitGatewayMulticastDomainAssociationsRequestT& request, const AcceptTransitGatewayMulticastDomainAssociationsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::AcceptTransitGatewayMulticastDomainAssociations, request, handler, context);
}
/**
* Accepts a transit gateway peering attachment request. The peering attachment
* must be in the pendingAcceptance
state.
See Also:
* AWS
* API Reference
*/
virtual Model::AcceptTransitGatewayPeeringAttachmentOutcome AcceptTransitGatewayPeeringAttachment(const Model::AcceptTransitGatewayPeeringAttachmentRequest& request) const;
/**
* A Callable wrapper for AcceptTransitGatewayPeeringAttachment that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::AcceptTransitGatewayPeeringAttachmentOutcomeCallable AcceptTransitGatewayPeeringAttachmentCallable(const AcceptTransitGatewayPeeringAttachmentRequestT& request) const
{
return SubmitCallable(&EC2Client::AcceptTransitGatewayPeeringAttachment, request);
}
/**
* An Async wrapper for AcceptTransitGatewayPeeringAttachment that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void AcceptTransitGatewayPeeringAttachmentAsync(const AcceptTransitGatewayPeeringAttachmentRequestT& request, const AcceptTransitGatewayPeeringAttachmentResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::AcceptTransitGatewayPeeringAttachment, request, handler, context);
}
/**
* Accepts a request to attach a VPC to a transit gateway.
The VPC
* attachment must be in the pendingAcceptance
state. Use
* DescribeTransitGatewayVpcAttachments to view your pending VPC attachment
* requests. Use RejectTransitGatewayVpcAttachment to reject a VPC
* attachment request.
See Also:
AWS
* API Reference
*/
virtual Model::AcceptTransitGatewayVpcAttachmentOutcome AcceptTransitGatewayVpcAttachment(const Model::AcceptTransitGatewayVpcAttachmentRequest& request) const;
/**
* A Callable wrapper for AcceptTransitGatewayVpcAttachment that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::AcceptTransitGatewayVpcAttachmentOutcomeCallable AcceptTransitGatewayVpcAttachmentCallable(const AcceptTransitGatewayVpcAttachmentRequestT& request) const
{
return SubmitCallable(&EC2Client::AcceptTransitGatewayVpcAttachment, request);
}
/**
* An Async wrapper for AcceptTransitGatewayVpcAttachment that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void AcceptTransitGatewayVpcAttachmentAsync(const AcceptTransitGatewayVpcAttachmentRequestT& request, const AcceptTransitGatewayVpcAttachmentResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::AcceptTransitGatewayVpcAttachment, request, handler, context);
}
/**
* Accepts connection requests to your VPC endpoint service.
See
* Also:
AWS
* API Reference
*/
virtual Model::AcceptVpcEndpointConnectionsOutcome AcceptVpcEndpointConnections(const Model::AcceptVpcEndpointConnectionsRequest& request) const;
/**
* A Callable wrapper for AcceptVpcEndpointConnections that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::AcceptVpcEndpointConnectionsOutcomeCallable AcceptVpcEndpointConnectionsCallable(const AcceptVpcEndpointConnectionsRequestT& request) const
{
return SubmitCallable(&EC2Client::AcceptVpcEndpointConnections, request);
}
/**
* An Async wrapper for AcceptVpcEndpointConnections that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void AcceptVpcEndpointConnectionsAsync(const AcceptVpcEndpointConnectionsRequestT& request, const AcceptVpcEndpointConnectionsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::AcceptVpcEndpointConnections, request, handler, context);
}
/**
* 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 DescribeVpcPeeringConnections to view your
* outstanding VPC peering connection requests.
For an inter-Region VPC
* peering connection request, you must accept the VPC peering connection in the
* Region of the accepter VPC.
See Also:
AWS
* API Reference
*/
virtual Model::AcceptVpcPeeringConnectionOutcome AcceptVpcPeeringConnection(const Model::AcceptVpcPeeringConnectionRequest& request) const;
/**
* A Callable wrapper for AcceptVpcPeeringConnection that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::AcceptVpcPeeringConnectionOutcomeCallable AcceptVpcPeeringConnectionCallable(const AcceptVpcPeeringConnectionRequestT& request) const
{
return SubmitCallable(&EC2Client::AcceptVpcPeeringConnection, request);
}
/**
* An Async wrapper for AcceptVpcPeeringConnection that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void AcceptVpcPeeringConnectionAsync(const AcceptVpcPeeringConnectionRequestT& request, const AcceptVpcPeeringConnectionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::AcceptVpcPeeringConnection, request, handler, context);
}
/**
* Advertises an IPv4 or IPv6 address range that is provisioned for use with
* your Amazon Web Services resources through bring your own IP addresses
* (BYOIP).
You can perform this operation at most once every 10 seconds,
* even if you specify different address ranges each time.
We recommend that
* you stop advertising the BYOIP CIDR from other locations when you advertise it
* from Amazon Web Services. To minimize down time, you can configure your Amazon
* Web Services resources to use an address from a BYOIP CIDR before it is
* advertised, and then simultaneously stop advertising it from the current
* location and start advertising it through Amazon Web Services.
It can
* take a few minutes before traffic to the specified addresses starts routing to
* Amazon Web Services because of BGP propagation delays.
To stop
* advertising the BYOIP CIDR, use WithdrawByoipCidr.
See
* Also:
AWS
* API Reference
*/
virtual Model::AdvertiseByoipCidrOutcome AdvertiseByoipCidr(const Model::AdvertiseByoipCidrRequest& request) const;
/**
* A Callable wrapper for AdvertiseByoipCidr that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::AdvertiseByoipCidrOutcomeCallable AdvertiseByoipCidrCallable(const AdvertiseByoipCidrRequestT& request) const
{
return SubmitCallable(&EC2Client::AdvertiseByoipCidr, request);
}
/**
* An Async wrapper for AdvertiseByoipCidr that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void AdvertiseByoipCidrAsync(const AdvertiseByoipCidrRequestT& request, const AdvertiseByoipCidrResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::AdvertiseByoipCidr, request, handler, context);
}
/**
* Allocates an Elastic IP address to your Amazon Web Services account. After
* you allocate the Elastic IP address you can associate it with an instance or
* network interface. After you release an Elastic IP address, it is released to
* the IP address pool and can be allocated to a different Amazon Web Services
* account.
You can allocate an Elastic IP address from an address pool
* owned by Amazon Web Services or from an address pool created from a public IPv4
* address range that you have brought to Amazon Web Services for use with your
* Amazon Web Services resources using bring your own IP addresses (BYOIP). For
* more information, see Bring
* Your Own IP Addresses (BYOIP) in the Amazon Elastic Compute Cloud User
* Guide.
If you release an Elastic IP address, you might be able to
* recover it. You cannot recover an Elastic IP address that you released after it
* is allocated to another Amazon Web Services account. To attempt to recover an
* Elastic IP address that you released, specify it in this operation.
For
* more information, see Elastic
* IP Addresses in the Amazon Elastic Compute Cloud User Guide.
* You can allocate a carrier IP address which is a public IP address from a
* telecommunication carrier, to a network interface which resides in a subnet in a
* Wavelength Zone (for example an EC2 instance).
See Also:
AWS
* API Reference
*/
virtual Model::AllocateAddressOutcome AllocateAddress(const Model::AllocateAddressRequest& request) const;
/**
* A Callable wrapper for AllocateAddress that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::AllocateAddressOutcomeCallable AllocateAddressCallable(const AllocateAddressRequestT& request) const
{
return SubmitCallable(&EC2Client::AllocateAddress, request);
}
/**
* An Async wrapper for AllocateAddress that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void AllocateAddressAsync(const AllocateAddressRequestT& request, const AllocateAddressResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::AllocateAddress, request, handler, context);
}
/**
* Allocates a Dedicated Host to your account. At a minimum, specify the
* supported instance type or instance family, the Availability Zone in which to
* allocate the host, and the number of hosts to allocate.
See Also:
* AWS
* API Reference
*/
virtual Model::AllocateHostsOutcome AllocateHosts(const Model::AllocateHostsRequest& request) const;
/**
* A Callable wrapper for AllocateHosts that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::AllocateHostsOutcomeCallable AllocateHostsCallable(const AllocateHostsRequestT& request) const
{
return SubmitCallable(&EC2Client::AllocateHosts, request);
}
/**
* An Async wrapper for AllocateHosts that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void AllocateHostsAsync(const AllocateHostsRequestT& request, const AllocateHostsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::AllocateHosts, request, handler, context);
}
/**
* Allocate a CIDR from an IPAM pool. The Region you use should be the IPAM pool
* locale. The locale is the Amazon Web Services Region where this IPAM pool is
* available for allocations.
In IPAM, an allocation is a CIDR assignment
* from an IPAM pool to another IPAM pool or to a resource. For more information,
* see Allocate
* CIDRs in the Amazon VPC IPAM User Guide.
This action
* creates an allocation with strong consistency. The returned CIDR will not
* overlap with any other allocations from the same pool.
See
* Also:
AWS
* API Reference
*/
virtual Model::AllocateIpamPoolCidrOutcome AllocateIpamPoolCidr(const Model::AllocateIpamPoolCidrRequest& request) const;
/**
* A Callable wrapper for AllocateIpamPoolCidr that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::AllocateIpamPoolCidrOutcomeCallable AllocateIpamPoolCidrCallable(const AllocateIpamPoolCidrRequestT& request) const
{
return SubmitCallable(&EC2Client::AllocateIpamPoolCidr, request);
}
/**
* An Async wrapper for AllocateIpamPoolCidr that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void AllocateIpamPoolCidrAsync(const AllocateIpamPoolCidrRequestT& request, const AllocateIpamPoolCidrResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::AllocateIpamPoolCidr, request, handler, context);
}
/**
* Applies a security group to the association between the target network and
* the Client VPN endpoint. This action replaces the existing security groups with
* the specified security groups.
See Also:
AWS
* API Reference
*/
virtual Model::ApplySecurityGroupsToClientVpnTargetNetworkOutcome ApplySecurityGroupsToClientVpnTargetNetwork(const Model::ApplySecurityGroupsToClientVpnTargetNetworkRequest& request) const;
/**
* A Callable wrapper for ApplySecurityGroupsToClientVpnTargetNetwork that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ApplySecurityGroupsToClientVpnTargetNetworkOutcomeCallable ApplySecurityGroupsToClientVpnTargetNetworkCallable(const ApplySecurityGroupsToClientVpnTargetNetworkRequestT& request) const
{
return SubmitCallable(&EC2Client::ApplySecurityGroupsToClientVpnTargetNetwork, request);
}
/**
* An Async wrapper for ApplySecurityGroupsToClientVpnTargetNetwork that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ApplySecurityGroupsToClientVpnTargetNetworkAsync(const ApplySecurityGroupsToClientVpnTargetNetworkRequestT& request, const ApplySecurityGroupsToClientVpnTargetNetworkResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::ApplySecurityGroupsToClientVpnTargetNetwork, request, handler, context);
}
/**
* Assigns one or more IPv6 addresses to the specified network interface. You
* can specify one or more specific IPv6 addresses, or you can specify the number
* of IPv6 addresses to be automatically assigned from within the subnet's IPv6
* CIDR block range. You can assign as many IPv6 addresses to a network interface
* as you can assign private IPv4 addresses, and the limit varies per instance
* type. For information, see IP
* Addresses Per Network Interface Per Instance Type in the Amazon Elastic
* Compute Cloud User Guide.
You must specify either the IPv6 addresses
* or the IPv6 address count in the request.
You can optionally use Prefix
* Delegation on the network interface. You must specify either the IPV6 Prefix
* Delegation prefixes, or the IPv6 Prefix Delegation count. For information, see
*
* Assigning prefixes to Amazon EC2 network interfaces in the Amazon Elastic
* Compute Cloud User Guide.
See Also:
AWS
* API Reference
*/
virtual Model::AssignIpv6AddressesOutcome AssignIpv6Addresses(const Model::AssignIpv6AddressesRequest& request) const;
/**
* A Callable wrapper for AssignIpv6Addresses that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::AssignIpv6AddressesOutcomeCallable AssignIpv6AddressesCallable(const AssignIpv6AddressesRequestT& request) const
{
return SubmitCallable(&EC2Client::AssignIpv6Addresses, request);
}
/**
* An Async wrapper for AssignIpv6Addresses that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void AssignIpv6AddressesAsync(const AssignIpv6AddressesRequestT& request, const AssignIpv6AddressesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::AssignIpv6Addresses, request, handler, context);
}
/**
* 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.
* When you move a secondary private IP address to another network interface,
* any Elastic IP address that is associated with the IP address is also moved.
* Remapping an IP address is an asynchronous operation. When you move an IP
* address from one network interface to another, check
* network/interfaces/macs/mac/local-ipv4s
in the instance metadata to
* confirm that the remapping is complete.
You must specify either the IP
* addresses or the IP address count in the request.
You can optionally use
* Prefix Delegation on the network interface. You must specify either the IPv4
* Prefix Delegation prefixes, or the IPv4 Prefix Delegation count. For
* information, see
* Assigning prefixes to Amazon EC2 network interfaces in the Amazon Elastic
* Compute Cloud User Guide.
See Also:
AWS
* API Reference
*/
virtual Model::AssignPrivateIpAddressesOutcome AssignPrivateIpAddresses(const Model::AssignPrivateIpAddressesRequest& request) const;
/**
* A Callable wrapper for AssignPrivateIpAddresses that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::AssignPrivateIpAddressesOutcomeCallable AssignPrivateIpAddressesCallable(const AssignPrivateIpAddressesRequestT& request) const
{
return SubmitCallable(&EC2Client::AssignPrivateIpAddresses, request);
}
/**
* An Async wrapper for AssignPrivateIpAddresses that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void AssignPrivateIpAddressesAsync(const AssignPrivateIpAddressesRequestT& request, const AssignPrivateIpAddressesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::AssignPrivateIpAddresses, request, handler, context);
}
/**
* Assigns one or more private IPv4 addresses to a private NAT gateway. For more
* information, see Work
* with NAT gateways in the Amazon VPC User Guide.
See
* Also:
AWS
* API Reference
*/
virtual Model::AssignPrivateNatGatewayAddressOutcome AssignPrivateNatGatewayAddress(const Model::AssignPrivateNatGatewayAddressRequest& request) const;
/**
* A Callable wrapper for AssignPrivateNatGatewayAddress that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::AssignPrivateNatGatewayAddressOutcomeCallable AssignPrivateNatGatewayAddressCallable(const AssignPrivateNatGatewayAddressRequestT& request) const
{
return SubmitCallable(&EC2Client::AssignPrivateNatGatewayAddress, request);
}
/**
* An Async wrapper for AssignPrivateNatGatewayAddress that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void AssignPrivateNatGatewayAddressAsync(const AssignPrivateNatGatewayAddressRequestT& request, const AssignPrivateNatGatewayAddressResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::AssignPrivateNatGatewayAddress, request, handler, context);
}
/**
* Associates an Elastic IP address, or carrier IP address (for instances that
* are in subnets in Wavelength Zones) with an instance or a network interface.
* Before you can use an Elastic IP address, you must allocate it to your
* account.
If the Elastic IP address is already associated with a different
* instance, it is disassociated from that instance and associated with the
* specified instance. If you associate an Elastic IP address with an instance that
* has an existing Elastic IP address, the existing address is disassociated from
* the instance, but remains allocated to your account.
[Subnets in
* Wavelength Zones] You can associate an IP address from the telecommunication
* carrier to the instance or network interface.
You cannot associate an
* Elastic IP address with an interface in a different network border group.
* This is an idempotent operation. If you perform the operation
* more than once, Amazon EC2 doesn't return an error, and you may be charged for
* each time the Elastic IP address is remapped to the same instance. For more
* information, see the Elastic IP Addresses section of Amazon EC2 Pricing.
* See Also:
AWS
* API Reference
*/
virtual Model::AssociateAddressOutcome AssociateAddress(const Model::AssociateAddressRequest& request) const;
/**
* A Callable wrapper for AssociateAddress that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::AssociateAddressOutcomeCallable AssociateAddressCallable(const AssociateAddressRequestT& request) const
{
return SubmitCallable(&EC2Client::AssociateAddress, request);
}
/**
* An Async wrapper for AssociateAddress that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void AssociateAddressAsync(const AssociateAddressRequestT& request, const AssociateAddressResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::AssociateAddress, request, handler, context);
}
/**
* Associates a target network with a Client VPN endpoint. A target network is a
* subnet in a VPC. You can associate multiple subnets from the same VPC with a
* Client VPN endpoint. You can associate only one subnet in each Availability
* Zone. We recommend that you associate at least two subnets to provide
* Availability Zone redundancy.
If you specified a VPC when you created the
* Client VPN endpoint or if you have previous subnet associations, the specified
* subnet must be in the same VPC. To specify a subnet that's in a different VPC,
* you must first modify the Client VPN endpoint (ModifyClientVpnEndpoint)
* and change the VPC that's associated with it.
See Also:
AWS
* API Reference
*/
virtual Model::AssociateClientVpnTargetNetworkOutcome AssociateClientVpnTargetNetwork(const Model::AssociateClientVpnTargetNetworkRequest& request) const;
/**
* A Callable wrapper for AssociateClientVpnTargetNetwork that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::AssociateClientVpnTargetNetworkOutcomeCallable AssociateClientVpnTargetNetworkCallable(const AssociateClientVpnTargetNetworkRequestT& request) const
{
return SubmitCallable(&EC2Client::AssociateClientVpnTargetNetwork, request);
}
/**
* An Async wrapper for AssociateClientVpnTargetNetwork that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void AssociateClientVpnTargetNetworkAsync(const AssociateClientVpnTargetNetworkRequestT& request, const AssociateClientVpnTargetNetworkResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::AssociateClientVpnTargetNetwork, request, handler, context);
}
/**
* 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 VPC User Guide.
See Also:
* AWS
* API Reference
*/
virtual Model::AssociateDhcpOptionsOutcome AssociateDhcpOptions(const Model::AssociateDhcpOptionsRequest& request) const;
/**
* A Callable wrapper for AssociateDhcpOptions that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::AssociateDhcpOptionsOutcomeCallable AssociateDhcpOptionsCallable(const AssociateDhcpOptionsRequestT& request) const
{
return SubmitCallable(&EC2Client::AssociateDhcpOptions, request);
}
/**
* An Async wrapper for AssociateDhcpOptions that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void AssociateDhcpOptionsAsync(const AssociateDhcpOptionsRequestT& request, const AssociateDhcpOptionsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::AssociateDhcpOptions, request, handler, context);
}
/**
* Associates an Identity and Access Management (IAM) role with an Certificate
* Manager (ACM) certificate. This enables the certificate to be used by the ACM
* for Nitro Enclaves application inside an enclave. For more information, see Certificate
* Manager for Nitro Enclaves in the Amazon Web Services Nitro Enclaves User
* Guide.
When the IAM role is associated with the ACM certificate, the
* certificate, certificate chain, and encrypted private key are placed in an
* Amazon S3 location that only the associated IAM role can access. The private key
* of the certificate is encrypted with an Amazon Web Services managed key that has
* an attached attestation-based key policy.
To enable the IAM role to
* access the Amazon S3 object, you must grant it permission to call
* s3:GetObject
on the Amazon S3 bucket returned by the command. To
* enable the IAM role to access the KMS key, you must grant it permission to call
* kms:Decrypt
on the KMS key returned by the command. For more
* information, see
* Grant the role permission to access the certificate and encryption key in
* the Amazon Web Services Nitro Enclaves User Guide.
See
* Also:
AWS
* API Reference
*/
virtual Model::AssociateEnclaveCertificateIamRoleOutcome AssociateEnclaveCertificateIamRole(const Model::AssociateEnclaveCertificateIamRoleRequest& request) const;
/**
* A Callable wrapper for AssociateEnclaveCertificateIamRole that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::AssociateEnclaveCertificateIamRoleOutcomeCallable AssociateEnclaveCertificateIamRoleCallable(const AssociateEnclaveCertificateIamRoleRequestT& request) const
{
return SubmitCallable(&EC2Client::AssociateEnclaveCertificateIamRole, request);
}
/**
* An Async wrapper for AssociateEnclaveCertificateIamRole that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void AssociateEnclaveCertificateIamRoleAsync(const AssociateEnclaveCertificateIamRoleRequestT& request, const AssociateEnclaveCertificateIamRoleResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::AssociateEnclaveCertificateIamRole, request, handler, context);
}
/**
* Associates an IAM instance profile with a running or stopped instance. You
* cannot associate more than one IAM instance profile with an
* instance.
See Also:
AWS
* API Reference
*/
virtual Model::AssociateIamInstanceProfileOutcome AssociateIamInstanceProfile(const Model::AssociateIamInstanceProfileRequest& request) const;
/**
* A Callable wrapper for AssociateIamInstanceProfile that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::AssociateIamInstanceProfileOutcomeCallable AssociateIamInstanceProfileCallable(const AssociateIamInstanceProfileRequestT& request) const
{
return SubmitCallable(&EC2Client::AssociateIamInstanceProfile, request);
}
/**
* An Async wrapper for AssociateIamInstanceProfile that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void AssociateIamInstanceProfileAsync(const AssociateIamInstanceProfileRequestT& request, const AssociateIamInstanceProfileResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::AssociateIamInstanceProfile, request, handler, context);
}
/**
* Associates one or more targets with an event window. Only one type of target
* (instance IDs, Dedicated Host IDs, or tags) can be specified with an event
* window.
For more information, see Define
* event windows for scheduled events in the Amazon EC2 User
* Guide.
See Also:
AWS
* API Reference
*/
virtual Model::AssociateInstanceEventWindowOutcome AssociateInstanceEventWindow(const Model::AssociateInstanceEventWindowRequest& request) const;
/**
* A Callable wrapper for AssociateInstanceEventWindow that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::AssociateInstanceEventWindowOutcomeCallable AssociateInstanceEventWindowCallable(const AssociateInstanceEventWindowRequestT& request) const
{
return SubmitCallable(&EC2Client::AssociateInstanceEventWindow, request);
}
/**
* An Async wrapper for AssociateInstanceEventWindow that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void AssociateInstanceEventWindowAsync(const AssociateInstanceEventWindowRequestT& request, const AssociateInstanceEventWindowResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::AssociateInstanceEventWindow, request, handler, context);
}
/**
* Associates an IPAM resource discovery with an Amazon VPC IPAM. A resource
* discovery is an IPAM component that enables IPAM to manage and monitor resources
* that belong to the owning account.
See Also:
AWS
* API Reference
*/
virtual Model::AssociateIpamResourceDiscoveryOutcome AssociateIpamResourceDiscovery(const Model::AssociateIpamResourceDiscoveryRequest& request) const;
/**
* A Callable wrapper for AssociateIpamResourceDiscovery that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::AssociateIpamResourceDiscoveryOutcomeCallable AssociateIpamResourceDiscoveryCallable(const AssociateIpamResourceDiscoveryRequestT& request) const
{
return SubmitCallable(&EC2Client::AssociateIpamResourceDiscovery, request);
}
/**
* An Async wrapper for AssociateIpamResourceDiscovery that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void AssociateIpamResourceDiscoveryAsync(const AssociateIpamResourceDiscoveryRequestT& request, const AssociateIpamResourceDiscoveryResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::AssociateIpamResourceDiscovery, request, handler, context);
}
/**
* Associates Elastic IP addresses (EIPs) and private IPv4 addresses with a
* public NAT gateway. For more information, see Work
* with NAT gateways in the Amazon VPC User Guide.
By default,
* you can associate up to 2 Elastic IP addresses per public NAT gateway. You can
* increase the limit by requesting a quota adjustment. For more information, see
* Elastic
* IP address quotas in the Amazon VPC User Guide.
See
* Also:
AWS
* API Reference
*/
virtual Model::AssociateNatGatewayAddressOutcome AssociateNatGatewayAddress(const Model::AssociateNatGatewayAddressRequest& request) const;
/**
* A Callable wrapper for AssociateNatGatewayAddress that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::AssociateNatGatewayAddressOutcomeCallable AssociateNatGatewayAddressCallable(const AssociateNatGatewayAddressRequestT& request) const
{
return SubmitCallable(&EC2Client::AssociateNatGatewayAddress, request);
}
/**
* An Async wrapper for AssociateNatGatewayAddress that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void AssociateNatGatewayAddressAsync(const AssociateNatGatewayAddressRequestT& request, const AssociateNatGatewayAddressResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::AssociateNatGatewayAddress, request, handler, context);
}
/**
* Associates a subnet in your VPC or an internet gateway or virtual private
* gateway attached to your VPC with a route table in your VPC. This association
* causes traffic from the subnet or gateway 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 later. A route table can be associated
* with multiple subnets.
For more information, see Route
* tables in the Amazon VPC User Guide.
See Also:
AWS
* API Reference
*/
virtual Model::AssociateRouteTableOutcome AssociateRouteTable(const Model::AssociateRouteTableRequest& request) const;
/**
* A Callable wrapper for AssociateRouteTable that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::AssociateRouteTableOutcomeCallable AssociateRouteTableCallable(const AssociateRouteTableRequestT& request) const
{
return SubmitCallable(&EC2Client::AssociateRouteTable, request);
}
/**
* An Async wrapper for AssociateRouteTable that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void AssociateRouteTableAsync(const AssociateRouteTableRequestT& request, const AssociateRouteTableResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::AssociateRouteTable, request, handler, context);
}
/**
* Associates a CIDR block with your subnet. You can only associate a single
* IPv6 CIDR block with your subnet. An IPv6 CIDR block must have a prefix length
* of /64.
See Also:
AWS
* API Reference
*/
virtual Model::AssociateSubnetCidrBlockOutcome AssociateSubnetCidrBlock(const Model::AssociateSubnetCidrBlockRequest& request) const;
/**
* A Callable wrapper for AssociateSubnetCidrBlock that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::AssociateSubnetCidrBlockOutcomeCallable AssociateSubnetCidrBlockCallable(const AssociateSubnetCidrBlockRequestT& request) const
{
return SubmitCallable(&EC2Client::AssociateSubnetCidrBlock, request);
}
/**
* An Async wrapper for AssociateSubnetCidrBlock that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void AssociateSubnetCidrBlockAsync(const AssociateSubnetCidrBlockRequestT& request, const AssociateSubnetCidrBlockResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::AssociateSubnetCidrBlock, request, handler, context);
}
/**
* Associates the specified subnets and transit gateway attachments with the
* specified transit gateway multicast domain.
The transit gateway
* attachment must be in the available state before you can add a resource. Use DescribeTransitGatewayAttachments
* to see the state of the attachment.
See Also:
AWS
* API Reference
*/
virtual Model::AssociateTransitGatewayMulticastDomainOutcome AssociateTransitGatewayMulticastDomain(const Model::AssociateTransitGatewayMulticastDomainRequest& request) const;
/**
* A Callable wrapper for AssociateTransitGatewayMulticastDomain that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::AssociateTransitGatewayMulticastDomainOutcomeCallable AssociateTransitGatewayMulticastDomainCallable(const AssociateTransitGatewayMulticastDomainRequestT& request) const
{
return SubmitCallable(&EC2Client::AssociateTransitGatewayMulticastDomain, request);
}
/**
* An Async wrapper for AssociateTransitGatewayMulticastDomain that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void AssociateTransitGatewayMulticastDomainAsync(const AssociateTransitGatewayMulticastDomainRequestT& request, const AssociateTransitGatewayMulticastDomainResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::AssociateTransitGatewayMulticastDomain, request, handler, context);
}
/**
* Associates the specified transit gateway attachment with a transit gateway
* policy table.
See Also:
AWS
* API Reference
*/
virtual Model::AssociateTransitGatewayPolicyTableOutcome AssociateTransitGatewayPolicyTable(const Model::AssociateTransitGatewayPolicyTableRequest& request) const;
/**
* A Callable wrapper for AssociateTransitGatewayPolicyTable that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::AssociateTransitGatewayPolicyTableOutcomeCallable AssociateTransitGatewayPolicyTableCallable(const AssociateTransitGatewayPolicyTableRequestT& request) const
{
return SubmitCallable(&EC2Client::AssociateTransitGatewayPolicyTable, request);
}
/**
* An Async wrapper for AssociateTransitGatewayPolicyTable that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void AssociateTransitGatewayPolicyTableAsync(const AssociateTransitGatewayPolicyTableRequestT& request, const AssociateTransitGatewayPolicyTableResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::AssociateTransitGatewayPolicyTable, request, handler, context);
}
/**
* Associates the specified attachment with the specified transit gateway route
* table. You can associate only one route table with an attachment.
See
* Also:
AWS
* API Reference
*/
virtual Model::AssociateTransitGatewayRouteTableOutcome AssociateTransitGatewayRouteTable(const Model::AssociateTransitGatewayRouteTableRequest& request) const;
/**
* A Callable wrapper for AssociateTransitGatewayRouteTable that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::AssociateTransitGatewayRouteTableOutcomeCallable AssociateTransitGatewayRouteTableCallable(const AssociateTransitGatewayRouteTableRequestT& request) const
{
return SubmitCallable(&EC2Client::AssociateTransitGatewayRouteTable, request);
}
/**
* An Async wrapper for AssociateTransitGatewayRouteTable that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void AssociateTransitGatewayRouteTableAsync(const AssociateTransitGatewayRouteTableRequestT& request, const AssociateTransitGatewayRouteTableResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::AssociateTransitGatewayRouteTable, request, handler, context);
}
/**
* This API action is currently in limited preview only. If you
* are interested in using this feature, contact your account manager.
* Associates a branch network interface with a trunk network interface.
* Before you create the association, run the create-network-interface
* command and set --interface-type
to trunk
. You must
* also create a network interface for each branch network interface that you want
* to associate with the trunk network interface.
See Also:
AWS
* API Reference
*/
virtual Model::AssociateTrunkInterfaceOutcome AssociateTrunkInterface(const Model::AssociateTrunkInterfaceRequest& request) const;
/**
* A Callable wrapper for AssociateTrunkInterface that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::AssociateTrunkInterfaceOutcomeCallable AssociateTrunkInterfaceCallable(const AssociateTrunkInterfaceRequestT& request) const
{
return SubmitCallable(&EC2Client::AssociateTrunkInterface, request);
}
/**
* An Async wrapper for AssociateTrunkInterface that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void AssociateTrunkInterfaceAsync(const AssociateTrunkInterfaceRequestT& request, const AssociateTrunkInterfaceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::AssociateTrunkInterface, request, handler, context);
}
/**
* Associates a CIDR block with your VPC. You can associate a secondary IPv4
* CIDR block, an Amazon-provided IPv6 CIDR block, or an IPv6 CIDR block from an
* IPv6 address pool that you provisioned through bring your own IP addresses (BYOIP).
* The IPv6 CIDR block size is fixed at /56.
You must specify one of the
* following in the request: an IPv4 CIDR block, an IPv6 pool, or an
* Amazon-provided IPv6 CIDR block.
For more information about associating
* CIDR blocks with your VPC and applicable restrictions, see IP
* addressing for your VPCs and subnets in the Amazon VPC User
* Guide.
See Also:
AWS
* API Reference
*/
virtual Model::AssociateVpcCidrBlockOutcome AssociateVpcCidrBlock(const Model::AssociateVpcCidrBlockRequest& request) const;
/**
* A Callable wrapper for AssociateVpcCidrBlock that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::AssociateVpcCidrBlockOutcomeCallable AssociateVpcCidrBlockCallable(const AssociateVpcCidrBlockRequestT& request) const
{
return SubmitCallable(&EC2Client::AssociateVpcCidrBlock, request);
}
/**
* An Async wrapper for AssociateVpcCidrBlock that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void AssociateVpcCidrBlockAsync(const AssociateVpcCidrBlockRequestT& request, const AssociateVpcCidrBlockResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::AssociateVpcCidrBlock, request, handler, context);
}
/**
* This action is deprecated.
Links an EC2-Classic
* instance to a ClassicLink-enabled VPC through one or more of the VPC 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.
See Also:
AWS
* API Reference
*/
virtual Model::AttachClassicLinkVpcOutcome AttachClassicLinkVpc(const Model::AttachClassicLinkVpcRequest& request) const;
/**
* A Callable wrapper for AttachClassicLinkVpc that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::AttachClassicLinkVpcOutcomeCallable AttachClassicLinkVpcCallable(const AttachClassicLinkVpcRequestT& request) const
{
return SubmitCallable(&EC2Client::AttachClassicLinkVpc, request);
}
/**
* An Async wrapper for AttachClassicLinkVpc that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void AttachClassicLinkVpcAsync(const AttachClassicLinkVpcRequestT& request, const AttachClassicLinkVpcResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::AttachClassicLinkVpc, request, handler, context);
}
/**
* Attaches an internet gateway or a virtual private gateway to a VPC, enabling
* connectivity between the internet and the VPC. For more information, see Internet
* gateways in the Amazon VPC User Guide.
See Also:
AWS
* API Reference
*/
virtual Model::AttachInternetGatewayOutcome AttachInternetGateway(const Model::AttachInternetGatewayRequest& request) const;
/**
* A Callable wrapper for AttachInternetGateway that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::AttachInternetGatewayOutcomeCallable AttachInternetGatewayCallable(const AttachInternetGatewayRequestT& request) const
{
return SubmitCallable(&EC2Client::AttachInternetGateway, request);
}
/**
* An Async wrapper for AttachInternetGateway that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void AttachInternetGatewayAsync(const AttachInternetGatewayRequestT& request, const AttachInternetGatewayResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::AttachInternetGateway, request, handler, context);
}
/**
* Attaches a network interface to an instance.
See Also:
AWS
* API Reference
*/
virtual Model::AttachNetworkInterfaceOutcome AttachNetworkInterface(const Model::AttachNetworkInterfaceRequest& request) const;
/**
* A Callable wrapper for AttachNetworkInterface that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::AttachNetworkInterfaceOutcomeCallable AttachNetworkInterfaceCallable(const AttachNetworkInterfaceRequestT& request) const
{
return SubmitCallable(&EC2Client::AttachNetworkInterface, request);
}
/**
* An Async wrapper for AttachNetworkInterface that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void AttachNetworkInterfaceAsync(const AttachNetworkInterfaceRequestT& request, const AttachNetworkInterfaceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::AttachNetworkInterface, request, handler, context);
}
/**
* Attaches the specified Amazon Web Services Verified Access trust provider to
* the specified Amazon Web Services Verified Access instance.
See
* Also:
AWS
* API Reference
*/
virtual Model::AttachVerifiedAccessTrustProviderOutcome AttachVerifiedAccessTrustProvider(const Model::AttachVerifiedAccessTrustProviderRequest& request) const;
/**
* A Callable wrapper for AttachVerifiedAccessTrustProvider that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::AttachVerifiedAccessTrustProviderOutcomeCallable AttachVerifiedAccessTrustProviderCallable(const AttachVerifiedAccessTrustProviderRequestT& request) const
{
return SubmitCallable(&EC2Client::AttachVerifiedAccessTrustProvider, request);
}
/**
* An Async wrapper for AttachVerifiedAccessTrustProvider that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void AttachVerifiedAccessTrustProviderAsync(const AttachVerifiedAccessTrustProviderRequestT& request, const AttachVerifiedAccessTrustProviderResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::AttachVerifiedAccessTrustProvider, request, handler, context);
}
/**
* Attaches an EBS volume to a running or stopped instance and exposes it to the
* instance with the specified device name.
Encrypted EBS volumes must be
* attached to instances that support Amazon EBS encryption. For more information,
* see Amazon
* EBS encryption in the Amazon Elastic Compute Cloud User Guide.
* After you attach an EBS volume, you must make it available. For more
* information, see Make
* an EBS volume available for use.
If a volume has an Amazon Web
* Services Marketplace product code:
-
The volume can be attached
* only to a stopped instance.
-
Amazon Web Services 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 more information, see Attach
* an Amazon EBS volume to an instance in the Amazon Elastic Compute Cloud
* User Guide.
See Also:
AWS
* API Reference
*/
virtual Model::AttachVolumeOutcome AttachVolume(const Model::AttachVolumeRequest& request) const;
/**
* A Callable wrapper for AttachVolume that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::AttachVolumeOutcomeCallable AttachVolumeCallable(const AttachVolumeRequestT& request) const
{
return SubmitCallable(&EC2Client::AttachVolume, request);
}
/**
* An Async wrapper for AttachVolume that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void AttachVolumeAsync(const AttachVolumeRequestT& request, const AttachVolumeResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::AttachVolume, request, handler, context);
}
/**
* Attaches a virtual private gateway to a VPC. You can attach one virtual
* private gateway to one VPC at a time.
For more information, see Amazon Web
* Services Site-to-Site VPN in the Amazon Web Services Site-to-Site VPN
* User Guide.
See Also:
AWS
* API Reference
*/
virtual Model::AttachVpnGatewayOutcome AttachVpnGateway(const Model::AttachVpnGatewayRequest& request) const;
/**
* A Callable wrapper for AttachVpnGateway that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::AttachVpnGatewayOutcomeCallable AttachVpnGatewayCallable(const AttachVpnGatewayRequestT& request) const
{
return SubmitCallable(&EC2Client::AttachVpnGateway, request);
}
/**
* An Async wrapper for AttachVpnGateway that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void AttachVpnGatewayAsync(const AttachVpnGatewayRequestT& request, const AttachVpnGatewayResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::AttachVpnGateway, request, handler, context);
}
/**
* Adds an ingress authorization rule to a Client VPN endpoint. Ingress
* authorization rules act as firewall rules that grant access to networks. You
* must configure ingress authorization rules to enable clients to access resources
* in Amazon Web Services or on-premises networks.
See Also:
AWS
* API Reference
*/
virtual Model::AuthorizeClientVpnIngressOutcome AuthorizeClientVpnIngress(const Model::AuthorizeClientVpnIngressRequest& request) const;
/**
* A Callable wrapper for AuthorizeClientVpnIngress that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::AuthorizeClientVpnIngressOutcomeCallable AuthorizeClientVpnIngressCallable(const AuthorizeClientVpnIngressRequestT& request) const
{
return SubmitCallable(&EC2Client::AuthorizeClientVpnIngress, request);
}
/**
* An Async wrapper for AuthorizeClientVpnIngress that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void AuthorizeClientVpnIngressAsync(const AuthorizeClientVpnIngressRequestT& request, const AuthorizeClientVpnIngressResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::AuthorizeClientVpnIngress, request, handler, context);
}
/**
* Adds the specified outbound (egress) rules to a security group for use with a
* VPC.
An outbound rule permits instances to send traffic to the specified
* IPv4 or IPv6 CIDR address ranges, or to the instances that are associated with
* the specified source security groups. When specifying an outbound rule for your
* security group in a VPC, the IpPermissions
must include a
* destination for the traffic.
You specify a protocol for each rule (for
* example, TCP). 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.
For information about VPC
* security group quotas, see Amazon
* VPC quotas.
See Also:
AWS
* API Reference
*/
virtual Model::AuthorizeSecurityGroupEgressOutcome AuthorizeSecurityGroupEgress(const Model::AuthorizeSecurityGroupEgressRequest& request) const;
/**
* A Callable wrapper for AuthorizeSecurityGroupEgress that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::AuthorizeSecurityGroupEgressOutcomeCallable AuthorizeSecurityGroupEgressCallable(const AuthorizeSecurityGroupEgressRequestT& request) const
{
return SubmitCallable(&EC2Client::AuthorizeSecurityGroupEgress, request);
}
/**
* An Async wrapper for AuthorizeSecurityGroupEgress that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void AuthorizeSecurityGroupEgressAsync(const AuthorizeSecurityGroupEgressRequestT& request, const AuthorizeSecurityGroupEgressResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::AuthorizeSecurityGroupEgress, request, handler, context);
}
/**
* Adds the specified inbound (ingress) rules to a security group.
An
* inbound rule permits instances to receive traffic from the specified IPv4 or
* IPv6 CIDR address range, or from the instances that are associated with the
* specified destination security groups. When specifying an inbound rule for your
* security group in a VPC, the IpPermissions
must include a source
* for the traffic.
You specify a protocol for each rule (for example, TCP).
* For TCP and UDP, you must also specify the destination port or port range. For
* ICMP/ICMPv6, you must also specify the ICMP/ICMPv6 type and code. You can use -1
* to mean all types or all codes.
Rule changes are propagated to instances
* within the security group as quickly as possible. However, a small delay might
* occur.
For more information about VPC security group quotas, see Amazon
* VPC quotas.
See Also:
AWS
* API Reference
*/
virtual Model::AuthorizeSecurityGroupIngressOutcome AuthorizeSecurityGroupIngress(const Model::AuthorizeSecurityGroupIngressRequest& request) const;
/**
* A Callable wrapper for AuthorizeSecurityGroupIngress that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::AuthorizeSecurityGroupIngressOutcomeCallable AuthorizeSecurityGroupIngressCallable(const AuthorizeSecurityGroupIngressRequestT& request) const
{
return SubmitCallable(&EC2Client::AuthorizeSecurityGroupIngress, request);
}
/**
* An Async wrapper for AuthorizeSecurityGroupIngress that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void AuthorizeSecurityGroupIngressAsync(const AuthorizeSecurityGroupIngressRequestT& request, const AuthorizeSecurityGroupIngressResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::AuthorizeSecurityGroupIngress, request, handler, context);
}
/**
* 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.
* See Also:
AWS
* API Reference
*/
virtual Model::BundleInstanceOutcome BundleInstance(const Model::BundleInstanceRequest& request) const;
/**
* A Callable wrapper for BundleInstance that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::BundleInstanceOutcomeCallable BundleInstanceCallable(const BundleInstanceRequestT& request) const
{
return SubmitCallable(&EC2Client::BundleInstance, request);
}
/**
* An Async wrapper for BundleInstance that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void BundleInstanceAsync(const BundleInstanceRequestT& request, const BundleInstanceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::BundleInstance, request, handler, context);
}
/**
* Cancels a bundling operation for an instance store-backed Windows
* instance.
See Also:
AWS
* API Reference
*/
virtual Model::CancelBundleTaskOutcome CancelBundleTask(const Model::CancelBundleTaskRequest& request) const;
/**
* A Callable wrapper for CancelBundleTask that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CancelBundleTaskOutcomeCallable CancelBundleTaskCallable(const CancelBundleTaskRequestT& request) const
{
return SubmitCallable(&EC2Client::CancelBundleTask, request);
}
/**
* An Async wrapper for CancelBundleTask that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CancelBundleTaskAsync(const CancelBundleTaskRequestT& request, const CancelBundleTaskResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::CancelBundleTask, request, handler, context);
}
/**
* Cancels the specified Capacity Reservation, releases the reserved capacity,
* and changes the Capacity Reservation's state to cancelled
.
* Instances running in the reserved capacity continue running until you stop
* them. Stopped instances that target the Capacity Reservation can no longer
* launch. Modify these instances to either target a different Capacity
* Reservation, launch On-Demand Instance capacity, or run in any open Capacity
* Reservation that has matching attributes and sufficient capacity.
See
* Also:
AWS
* API Reference
*/
virtual Model::CancelCapacityReservationOutcome CancelCapacityReservation(const Model::CancelCapacityReservationRequest& request) const;
/**
* A Callable wrapper for CancelCapacityReservation that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CancelCapacityReservationOutcomeCallable CancelCapacityReservationCallable(const CancelCapacityReservationRequestT& request) const
{
return SubmitCallable(&EC2Client::CancelCapacityReservation, request);
}
/**
* An Async wrapper for CancelCapacityReservation that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CancelCapacityReservationAsync(const CancelCapacityReservationRequestT& request, const CancelCapacityReservationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::CancelCapacityReservation, request, handler, context);
}
/**
* Cancels one or more Capacity Reservation Fleets. When you cancel a Capacity
* Reservation Fleet, the following happens:
-
The Capacity
* Reservation Fleet's status changes to cancelled
.
-
*
The individual Capacity Reservations in the Fleet are cancelled. Instances
* running in the Capacity Reservations at the time of cancelling the Fleet
* continue to run in shared capacity.
-
The Fleet stops creating
* new Capacity Reservations.
See Also:
AWS
* API Reference
*/
virtual Model::CancelCapacityReservationFleetsOutcome CancelCapacityReservationFleets(const Model::CancelCapacityReservationFleetsRequest& request) const;
/**
* A Callable wrapper for CancelCapacityReservationFleets that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CancelCapacityReservationFleetsOutcomeCallable CancelCapacityReservationFleetsCallable(const CancelCapacityReservationFleetsRequestT& request) const
{
return SubmitCallable(&EC2Client::CancelCapacityReservationFleets, request);
}
/**
* An Async wrapper for CancelCapacityReservationFleets that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CancelCapacityReservationFleetsAsync(const CancelCapacityReservationFleetsRequestT& request, const CancelCapacityReservationFleetsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::CancelCapacityReservationFleets, request, handler, context);
}
/**
* Cancels an active conversion task. The task can be the import of an instance
* or volume. The action removes all artifacts of the conversion, including a
* partially uploaded volume or instance. If the conversion is complete or is in
* the process of transferring the final disk image, the command fails and returns
* an exception.
For more information, see Importing
* a Virtual Machine Using the Amazon EC2 CLI.
See Also:
AWS
* API Reference
*/
virtual Model::CancelConversionTaskOutcome CancelConversionTask(const Model::CancelConversionTaskRequest& request) const;
/**
* A Callable wrapper for CancelConversionTask that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CancelConversionTaskOutcomeCallable CancelConversionTaskCallable(const CancelConversionTaskRequestT& request) const
{
return SubmitCallable(&EC2Client::CancelConversionTask, request);
}
/**
* An Async wrapper for CancelConversionTask that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CancelConversionTaskAsync(const CancelConversionTaskRequestT& request, const CancelConversionTaskResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::CancelConversionTask, request, handler, context);
}
/**
* 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.
See Also:
AWS
* API Reference
*/
virtual Model::CancelExportTaskOutcome CancelExportTask(const Model::CancelExportTaskRequest& request) const;
/**
* A Callable wrapper for CancelExportTask that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CancelExportTaskOutcomeCallable CancelExportTaskCallable(const CancelExportTaskRequestT& request) const
{
return SubmitCallable(&EC2Client::CancelExportTask, request);
}
/**
* An Async wrapper for CancelExportTask that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CancelExportTaskAsync(const CancelExportTaskRequestT& request, const CancelExportTaskResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::CancelExportTask, request, handler, context);
}
/**
* Removes your Amazon Web Services account from the launch permissions for the
* specified AMI. For more information, see
* Cancel having an AMI shared with your Amazon Web Services account in the
* Amazon EC2 User Guide.
See Also:
AWS
* API Reference
*/
virtual Model::CancelImageLaunchPermissionOutcome CancelImageLaunchPermission(const Model::CancelImageLaunchPermissionRequest& request) const;
/**
* A Callable wrapper for CancelImageLaunchPermission that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CancelImageLaunchPermissionOutcomeCallable CancelImageLaunchPermissionCallable(const CancelImageLaunchPermissionRequestT& request) const
{
return SubmitCallable(&EC2Client::CancelImageLaunchPermission, request);
}
/**
* An Async wrapper for CancelImageLaunchPermission that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CancelImageLaunchPermissionAsync(const CancelImageLaunchPermissionRequestT& request, const CancelImageLaunchPermissionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::CancelImageLaunchPermission, request, handler, context);
}
/**
* Cancels an in-process import virtual machine or import snapshot
* task.
See Also:
AWS
* API Reference
*/
virtual Model::CancelImportTaskOutcome CancelImportTask(const Model::CancelImportTaskRequest& request) const;
/**
* A Callable wrapper for CancelImportTask that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CancelImportTaskOutcomeCallable CancelImportTaskCallable(const CancelImportTaskRequestT& request) const
{
return SubmitCallable(&EC2Client::CancelImportTask, request);
}
/**
* An Async wrapper for CancelImportTask that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CancelImportTaskAsync(const CancelImportTaskRequestT& request, const CancelImportTaskResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::CancelImportTask, request, handler, context);
}
/**
* Cancels the specified Reserved Instance listing in the Reserved Instance
* Marketplace.
For more information, see Reserved
* Instance Marketplace in the Amazon EC2 User Guide.
See
* Also:
AWS
* API Reference
*/
virtual Model::CancelReservedInstancesListingOutcome CancelReservedInstancesListing(const Model::CancelReservedInstancesListingRequest& request) const;
/**
* A Callable wrapper for CancelReservedInstancesListing that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CancelReservedInstancesListingOutcomeCallable CancelReservedInstancesListingCallable(const CancelReservedInstancesListingRequestT& request) const
{
return SubmitCallable(&EC2Client::CancelReservedInstancesListing, request);
}
/**
* An Async wrapper for CancelReservedInstancesListing that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CancelReservedInstancesListingAsync(const CancelReservedInstancesListingRequestT& request, const CancelReservedInstancesListingResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::CancelReservedInstancesListing, request, handler, context);
}
/**
* Cancels the specified Spot Fleet requests.
After you cancel a Spot
* Fleet request, the Spot Fleet launches no new instances.
You must also
* specify whether a canceled Spot Fleet request should terminate its instances. If
* you choose to 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.
See
* Also:
AWS
* API Reference
*/
virtual Model::CancelSpotFleetRequestsOutcome CancelSpotFleetRequests(const Model::CancelSpotFleetRequestsRequest& request) const;
/**
* A Callable wrapper for CancelSpotFleetRequests that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CancelSpotFleetRequestsOutcomeCallable CancelSpotFleetRequestsCallable(const CancelSpotFleetRequestsRequestT& request) const
{
return SubmitCallable(&EC2Client::CancelSpotFleetRequests, request);
}
/**
* An Async wrapper for CancelSpotFleetRequests that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CancelSpotFleetRequestsAsync(const CancelSpotFleetRequestsRequestT& request, const CancelSpotFleetRequestsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::CancelSpotFleetRequests, request, handler, context);
}
/**
* Cancels one or more Spot Instance requests.
Canceling a
* Spot Instance request does not terminate running Spot Instances associated with
* the request.
See Also:
AWS
* API Reference
*/
virtual Model::CancelSpotInstanceRequestsOutcome CancelSpotInstanceRequests(const Model::CancelSpotInstanceRequestsRequest& request) const;
/**
* A Callable wrapper for CancelSpotInstanceRequests that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CancelSpotInstanceRequestsOutcomeCallable CancelSpotInstanceRequestsCallable(const CancelSpotInstanceRequestsRequestT& request) const
{
return SubmitCallable(&EC2Client::CancelSpotInstanceRequests, request);
}
/**
* An Async wrapper for CancelSpotInstanceRequests that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CancelSpotInstanceRequestsAsync(const CancelSpotInstanceRequestsRequestT& request, const CancelSpotInstanceRequestsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::CancelSpotInstanceRequests, request, handler, context);
}
/**
* 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 must verify whether another user's instance is eligible for
* support.
See Also:
AWS
* API Reference
*/
virtual Model::ConfirmProductInstanceOutcome ConfirmProductInstance(const Model::ConfirmProductInstanceRequest& request) const;
/**
* A Callable wrapper for ConfirmProductInstance that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ConfirmProductInstanceOutcomeCallable ConfirmProductInstanceCallable(const ConfirmProductInstanceRequestT& request) const
{
return SubmitCallable(&EC2Client::ConfirmProductInstance, request);
}
/**
* An Async wrapper for ConfirmProductInstance that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ConfirmProductInstanceAsync(const ConfirmProductInstanceRequestT& request, const ConfirmProductInstanceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::ConfirmProductInstance, request, handler, context);
}
/**
* Copies the specified Amazon FPGA Image (AFI) to the current
* Region.
See Also:
AWS
* API Reference
*/
virtual Model::CopyFpgaImageOutcome CopyFpgaImage(const Model::CopyFpgaImageRequest& request) const;
/**
* A Callable wrapper for CopyFpgaImage that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CopyFpgaImageOutcomeCallable CopyFpgaImageCallable(const CopyFpgaImageRequestT& request) const
{
return SubmitCallable(&EC2Client::CopyFpgaImage, request);
}
/**
* An Async wrapper for CopyFpgaImage that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CopyFpgaImageAsync(const CopyFpgaImageRequestT& request, const CopyFpgaImageResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::CopyFpgaImage, request, handler, context);
}
/**
* Initiates the copy of an AMI. You can copy an AMI from one Region to another,
* or from a Region to an Outpost. You can't copy an AMI from an Outpost to a
* Region, from one Outpost to another, or within the same Outpost. To copy an AMI
* to another partition, see CreateStoreImageTask.
* To copy an AMI from one Region to another, specify the source Region using
* the SourceRegion parameter, and specify the destination Region using its
* endpoint. Copies of encrypted backing snapshots for the AMI are encrypted.
* Copies of unencrypted backing snapshots remain unencrypted, unless you set
* Encrypted
during the copy operation. You cannot create an
* unencrypted copy of an encrypted backing snapshot.
To copy an AMI from a
* Region to an Outpost, specify the source Region using the SourceRegion
* parameter, and specify the ARN of the destination Outpost using
* DestinationOutpostArn. Backing snapshots copied to an Outpost are
* encrypted by default using the default encryption key for the Region, or a
* different key that you specify in the request using KmsKeyId. Outposts do
* not support unencrypted snapshots. For more information,
* Amazon EBS local snapshots on Outposts in the Amazon EC2 User
* Guide.
For more information about the prerequisites and limits when
* copying an AMI, see Copy
* an AMI in the Amazon EC2 User Guide.
See Also:
AWS API
* Reference
*/
virtual Model::CopyImageOutcome CopyImage(const Model::CopyImageRequest& request) const;
/**
* A Callable wrapper for CopyImage that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CopyImageOutcomeCallable CopyImageCallable(const CopyImageRequestT& request) const
{
return SubmitCallable(&EC2Client::CopyImage, request);
}
/**
* An Async wrapper for CopyImage that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CopyImageAsync(const CopyImageRequestT& request, const CopyImageResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::CopyImage, request, handler, context);
}
/**
* Copies a point-in-time snapshot of an EBS volume and stores it in Amazon S3.
* You can copy a snapshot within the same Region, from one Region to another, or
* from a Region to an Outpost. You can't copy a snapshot from an Outpost to a
* Region, from one Outpost to another, or within the same Outpost.
You can
* use the snapshot to create EBS volumes or Amazon Machine Images (AMIs).
* When copying snapshots to a Region, copies of encrypted EBS snapshots remain
* encrypted. Copies of unencrypted snapshots remain unencrypted, unless you enable
* encryption for the snapshot copy operation. By default, encrypted snapshot
* copies use the default Key Management Service (KMS) KMS key; however, you can
* specify a different KMS key. To copy an encrypted snapshot that has been shared
* from another account, you must have permissions for the KMS key used to encrypt
* the snapshot.
Snapshots copied to an Outpost are encrypted by default
* using the default encryption key for the Region, or a different key that you
* specify in the request using KmsKeyId. Outposts do not support
* unencrypted snapshots. For more information,
* Amazon EBS local snapshots on Outposts in the Amazon Elastic Compute
* Cloud User Guide.
Snapshots created by copying another snapshot have
* an arbitrary volume ID that should not be used for any purpose.
For more
* information, see Copy
* an Amazon EBS snapshot in the Amazon Elastic Compute Cloud User
* Guide.
See Also:
AWS
* API Reference
*/
virtual Model::CopySnapshotOutcome CopySnapshot(const Model::CopySnapshotRequest& request) const;
/**
* A Callable wrapper for CopySnapshot that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CopySnapshotOutcomeCallable CopySnapshotCallable(const CopySnapshotRequestT& request) const
{
return SubmitCallable(&EC2Client::CopySnapshot, request);
}
/**
* An Async wrapper for CopySnapshot that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CopySnapshotAsync(const CopySnapshotRequestT& request, const CopySnapshotResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::CopySnapshot, request, handler, context);
}
/**
* Creates a new Capacity Reservation with the specified attributes.
* Capacity Reservations enable you to reserve capacity for your Amazon EC2
* instances in a specific Availability Zone for any duration. This gives you the
* flexibility to selectively add capacity reservations and still get the Regional
* RI discounts for that usage. By creating Capacity Reservations, you ensure that
* you always have access to Amazon EC2 capacity when you need it, for as long as
* you need it. For more information, see Capacity
* Reservations in the Amazon EC2 User Guide.
Your request to
* create a Capacity Reservation could fail if Amazon EC2 does not have sufficient
* capacity to fulfill the request. If your request fails due to Amazon EC2
* capacity constraints, either try again at a later time, try in a different
* Availability Zone, or request a smaller capacity reservation. If your
* application is flexible across instance types and sizes, try to create a
* Capacity Reservation with different instance attributes.
Your request
* could also fail if the requested quantity exceeds your On-Demand Instance limit
* for the selected instance type. If your request fails due to limit constraints,
* increase your On-Demand Instance limit for the required instance type and try
* again. For more information about increasing your instance limits, see Amazon
* EC2 Service Quotas in the Amazon EC2 User Guide.
See
* Also:
AWS
* API Reference
*/
virtual Model::CreateCapacityReservationOutcome CreateCapacityReservation(const Model::CreateCapacityReservationRequest& request) const;
/**
* A Callable wrapper for CreateCapacityReservation that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CreateCapacityReservationOutcomeCallable CreateCapacityReservationCallable(const CreateCapacityReservationRequestT& request) const
{
return SubmitCallable(&EC2Client::CreateCapacityReservation, request);
}
/**
* An Async wrapper for CreateCapacityReservation that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CreateCapacityReservationAsync(const CreateCapacityReservationRequestT& request, const CreateCapacityReservationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::CreateCapacityReservation, request, handler, context);
}
/**
* Creates a Capacity Reservation Fleet. For more information, see Create
* a Capacity Reservation Fleet in the Amazon EC2 User Guide.
See
* Also:
AWS
* API Reference
*/
virtual Model::CreateCapacityReservationFleetOutcome CreateCapacityReservationFleet(const Model::CreateCapacityReservationFleetRequest& request) const;
/**
* A Callable wrapper for CreateCapacityReservationFleet that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CreateCapacityReservationFleetOutcomeCallable CreateCapacityReservationFleetCallable(const CreateCapacityReservationFleetRequestT& request) const
{
return SubmitCallable(&EC2Client::CreateCapacityReservationFleet, request);
}
/**
* An Async wrapper for CreateCapacityReservationFleet that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CreateCapacityReservationFleetAsync(const CreateCapacityReservationFleetRequestT& request, const CreateCapacityReservationFleetResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::CreateCapacityReservationFleet, request, handler, context);
}
/**
* Creates a carrier gateway. For more information about carrier gateways, see
* Carrier
* gateways in the Amazon Web Services Wavelength Developer
* Guide.
See Also:
AWS
* API Reference
*/
virtual Model::CreateCarrierGatewayOutcome CreateCarrierGateway(const Model::CreateCarrierGatewayRequest& request) const;
/**
* A Callable wrapper for CreateCarrierGateway that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CreateCarrierGatewayOutcomeCallable CreateCarrierGatewayCallable(const CreateCarrierGatewayRequestT& request) const
{
return SubmitCallable(&EC2Client::CreateCarrierGateway, request);
}
/**
* An Async wrapper for CreateCarrierGateway that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CreateCarrierGatewayAsync(const CreateCarrierGatewayRequestT& request, const CreateCarrierGatewayResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::CreateCarrierGateway, request, handler, context);
}
/**
* Creates a Client VPN endpoint. A Client VPN endpoint is the resource you
* create and configure to enable and manage client VPN sessions. It is the
* destination endpoint at which all client VPN sessions are
* terminated.
See Also:
AWS
* API Reference
*/
virtual Model::CreateClientVpnEndpointOutcome CreateClientVpnEndpoint(const Model::CreateClientVpnEndpointRequest& request) const;
/**
* A Callable wrapper for CreateClientVpnEndpoint that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CreateClientVpnEndpointOutcomeCallable CreateClientVpnEndpointCallable(const CreateClientVpnEndpointRequestT& request) const
{
return SubmitCallable(&EC2Client::CreateClientVpnEndpoint, request);
}
/**
* An Async wrapper for CreateClientVpnEndpoint that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CreateClientVpnEndpointAsync(const CreateClientVpnEndpointRequestT& request, const CreateClientVpnEndpointResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::CreateClientVpnEndpoint, request, handler, context);
}
/**
* Adds a route to a network to a Client VPN endpoint. Each Client VPN endpoint
* has a route table that describes the available destination network routes. Each
* route in the route table specifies the path for traffic to specific resources or
* networks.
See Also:
AWS
* API Reference
*/
virtual Model::CreateClientVpnRouteOutcome CreateClientVpnRoute(const Model::CreateClientVpnRouteRequest& request) const;
/**
* A Callable wrapper for CreateClientVpnRoute that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CreateClientVpnRouteOutcomeCallable CreateClientVpnRouteCallable(const CreateClientVpnRouteRequestT& request) const
{
return SubmitCallable(&EC2Client::CreateClientVpnRoute, request);
}
/**
* An Async wrapper for CreateClientVpnRoute that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CreateClientVpnRouteAsync(const CreateClientVpnRouteRequestT& request, const CreateClientVpnRouteResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::CreateClientVpnRoute, request, handler, context);
}
/**
* Creates a range of customer-owned IP addresses.
See Also:
* AWS
* API Reference
*/
virtual Model::CreateCoipCidrOutcome CreateCoipCidr(const Model::CreateCoipCidrRequest& request) const;
/**
* A Callable wrapper for CreateCoipCidr that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CreateCoipCidrOutcomeCallable CreateCoipCidrCallable(const CreateCoipCidrRequestT& request) const
{
return SubmitCallable(&EC2Client::CreateCoipCidr, request);
}
/**
* An Async wrapper for CreateCoipCidr that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CreateCoipCidrAsync(const CreateCoipCidrRequestT& request, const CreateCoipCidrResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::CreateCoipCidr, request, handler, context);
}
/**
* Creates a pool of customer-owned IP (CoIP) addresses.
See
* Also:
AWS
* API Reference
*/
virtual Model::CreateCoipPoolOutcome CreateCoipPool(const Model::CreateCoipPoolRequest& request) const;
/**
* A Callable wrapper for CreateCoipPool that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CreateCoipPoolOutcomeCallable CreateCoipPoolCallable(const CreateCoipPoolRequestT& request) const
{
return SubmitCallable(&EC2Client::CreateCoipPool, request);
}
/**
* An Async wrapper for CreateCoipPool that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CreateCoipPoolAsync(const CreateCoipPoolRequestT& request, const CreateCoipPoolResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::CreateCoipPool, request, handler, context);
}
/**
* Provides information to Amazon Web Services about your customer gateway
* device. The customer gateway device is the appliance at your end of the VPN
* connection. You must provide the IP address of the customer gateway device’s
* external interface. The IP address must be static and can 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. For more information, see Customer
* gateway options for your Site-to-Site VPN connection in the Amazon Web
* Services Site-to-Site VPN User Guide.
To create more than one
* customer gateway with the same VPN type, IP address, and BGP ASN, specify a
* unique device name for each customer gateway. An identical request returns
* information about the existing customer gateway; it doesn't create a new
* customer gateway.
See Also:
AWS
* API Reference
*/
virtual Model::CreateCustomerGatewayOutcome CreateCustomerGateway(const Model::CreateCustomerGatewayRequest& request) const;
/**
* A Callable wrapper for CreateCustomerGateway that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CreateCustomerGatewayOutcomeCallable CreateCustomerGatewayCallable(const CreateCustomerGatewayRequestT& request) const
{
return SubmitCallable(&EC2Client::CreateCustomerGateway, request);
}
/**
* An Async wrapper for CreateCustomerGateway that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CreateCustomerGatewayAsync(const CreateCustomerGatewayRequestT& request, const CreateCustomerGatewayResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::CreateCustomerGateway, request, handler, context);
}
/**
* Creates a default subnet with a size /20
IPv4 CIDR block in the
* specified Availability Zone in your default VPC. You can have only one default
* subnet per Availability Zone. For more information, see Create
* a default subnet in the Amazon VPC User Guide.
See
* Also:
AWS
* API Reference
*/
virtual Model::CreateDefaultSubnetOutcome CreateDefaultSubnet(const Model::CreateDefaultSubnetRequest& request) const;
/**
* A Callable wrapper for CreateDefaultSubnet that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CreateDefaultSubnetOutcomeCallable CreateDefaultSubnetCallable(const CreateDefaultSubnetRequestT& request) const
{
return SubmitCallable(&EC2Client::CreateDefaultSubnet, request);
}
/**
* An Async wrapper for CreateDefaultSubnet that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CreateDefaultSubnetAsync(const CreateDefaultSubnetRequestT& request, const CreateDefaultSubnetResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::CreateDefaultSubnet, request, handler, context);
}
/**
* Creates a default VPC with a size /16
IPv4 CIDR block and a
* default subnet in each Availability Zone. For more information about the
* components of a default VPC, see Default
* VPCs in the Amazon VPC User Guide. You cannot specify the components
* of the default VPC yourself.
If you deleted your previous default VPC,
* you can create a default VPC. You cannot have more than one default VPC per
* Region.
See Also:
AWS
* API Reference
*/
virtual Model::CreateDefaultVpcOutcome CreateDefaultVpc(const Model::CreateDefaultVpcRequest& request) const;
/**
* A Callable wrapper for CreateDefaultVpc that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CreateDefaultVpcOutcomeCallable CreateDefaultVpcCallable(const CreateDefaultVpcRequestT& request) const
{
return SubmitCallable(&EC2Client::CreateDefaultVpc, request);
}
/**
* An Async wrapper for CreateDefaultVpc that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CreateDefaultVpcAsync(const CreateDefaultVpcRequestT& request, const CreateDefaultVpcResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::CreateDefaultVpc, request, handler, context);
}
/**
* 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. To have your instance
* receive a custom DNS hostname as specified in domain-name
, you must
* set domain-name-servers
to a custom DNS server.
-
* domain-name
- If you're using AmazonProvidedDNS in
* us-east-1
, specify ec2.internal
. If you're using
* AmazonProvidedDNS in another Region, specify
* region.compute.internal
(for example,
* ap-northeast-1.compute.internal
). Otherwise, specify a domain name
* (for example, ExampleCompany.com
). This value is used to complete
* unqualified DNS hostnames. Important: Some Linux operating systems accept
* multiple domain names separated by spaces. However, Windows and other Linux
* operating systems treat the value as a single domain, which results in
* unexpected behavior. If your DHCP options set is associated with a VPC that has
* instances with multiple operating systems, specify only one domain name.
* -
ntp-servers
- The IP addresses of up to four Network
* Time Protocol (NTP) servers.
-
* netbios-name-servers
- The IP addresses of up to four NetBIOS name
* servers.
-
netbios-node-type
- The NetBIOS node
* type (1, 2, 4, or 8). We recommend that you specify 2 (broadcast and multicast
* are not currently supported). For more information about these node types, see
* RFC 2132.
* Your VPC automatically starts out with a set of DHCP options that includes
* only a DNS server that we provide (AmazonProvidedDNS). If you create a set of
* options, and if your VPC has an internet gateway, make sure to set the
* domain-name-servers
option either to AmazonProvidedDNS
* or to a domain name server of your choice. For more information, see DHCP
* options sets in the Amazon VPC User Guide.
See Also:
* AWS
* API Reference
*/
virtual Model::CreateDhcpOptionsOutcome CreateDhcpOptions(const Model::CreateDhcpOptionsRequest& request) const;
/**
* A Callable wrapper for CreateDhcpOptions that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CreateDhcpOptionsOutcomeCallable CreateDhcpOptionsCallable(const CreateDhcpOptionsRequestT& request) const
{
return SubmitCallable(&EC2Client::CreateDhcpOptions, request);
}
/**
* An Async wrapper for CreateDhcpOptions that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CreateDhcpOptionsAsync(const CreateDhcpOptionsRequestT& request, const CreateDhcpOptionsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::CreateDhcpOptions, request, handler, context);
}
/**
* [IPv6 only] Creates an egress-only internet gateway for your VPC. An
* egress-only internet gateway is used to enable outbound communication over IPv6
* from instances in your VPC to the internet, and prevents hosts outside of your
* VPC from initiating an IPv6 connection with your instance.
See
* Also:
AWS
* API Reference
*/
virtual Model::CreateEgressOnlyInternetGatewayOutcome CreateEgressOnlyInternetGateway(const Model::CreateEgressOnlyInternetGatewayRequest& request) const;
/**
* A Callable wrapper for CreateEgressOnlyInternetGateway that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CreateEgressOnlyInternetGatewayOutcomeCallable CreateEgressOnlyInternetGatewayCallable(const CreateEgressOnlyInternetGatewayRequestT& request) const
{
return SubmitCallable(&EC2Client::CreateEgressOnlyInternetGateway, request);
}
/**
* An Async wrapper for CreateEgressOnlyInternetGateway that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CreateEgressOnlyInternetGatewayAsync(const CreateEgressOnlyInternetGatewayRequestT& request, const CreateEgressOnlyInternetGatewayResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::CreateEgressOnlyInternetGateway, request, handler, context);
}
/**
* Creates an EC2 Fleet that contains the configuration information for
* On-Demand Instances and Spot Instances. Instances are launched immediately if
* there is available capacity.
A single EC2 Fleet can include multiple
* launch specifications that vary by instance type, AMI, Availability Zone, or
* subnet.
For more information, see EC2
* Fleet in the Amazon EC2 User Guide.
See Also:
AWS API
* Reference
*/
virtual Model::CreateFleetOutcome CreateFleet(const Model::CreateFleetRequest& request) const;
/**
* A Callable wrapper for CreateFleet that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CreateFleetOutcomeCallable CreateFleetCallable(const CreateFleetRequestT& request) const
{
return SubmitCallable(&EC2Client::CreateFleet, request);
}
/**
* An Async wrapper for CreateFleet that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CreateFleetAsync(const CreateFleetRequestT& request, const CreateFleetResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::CreateFleet, request, handler, context);
}
/**
* Creates one or more flow logs to capture information about IP traffic for a
* specific network interface, subnet, or VPC.
Flow log data for a
* monitored network interface is recorded as flow log records, which are log
* events consisting of fields that describe the traffic flow. For more
* information, see Flow
* log records in the Amazon Virtual Private Cloud User Guide.
* When publishing to CloudWatch Logs, flow log records are published to a log
* group, and each network interface has a unique log stream in the log group. When
* publishing to Amazon S3, flow log records for all of the monitored network
* interfaces are published to a single log file object that is stored in the
* specified bucket.
For more information, see VPC Flow
* Logs in the Amazon Virtual Private Cloud User Guide.
See
* Also:
AWS
* API Reference
*/
virtual Model::CreateFlowLogsOutcome CreateFlowLogs(const Model::CreateFlowLogsRequest& request) const;
/**
* A Callable wrapper for CreateFlowLogs that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CreateFlowLogsOutcomeCallable CreateFlowLogsCallable(const CreateFlowLogsRequestT& request) const
{
return SubmitCallable(&EC2Client::CreateFlowLogs, request);
}
/**
* An Async wrapper for CreateFlowLogs that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CreateFlowLogsAsync(const CreateFlowLogsRequestT& request, const CreateFlowLogsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::CreateFlowLogs, request, handler, context);
}
/**
* Creates an Amazon FPGA Image (AFI) from the specified design checkpoint
* (DCP).
The create operation is asynchronous. To verify that the AFI is
* ready for use, check the output logs.
An AFI contains the FPGA bitstream
* that is ready to download to an FPGA. You can securely deploy an AFI on multiple
* FPGA-accelerated instances. For more information, see the Amazon Web Services FPGA Hardware
* Development Kit.
See Also:
AWS
* API Reference
*/
virtual Model::CreateFpgaImageOutcome CreateFpgaImage(const Model::CreateFpgaImageRequest& request) const;
/**
* A Callable wrapper for CreateFpgaImage that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CreateFpgaImageOutcomeCallable CreateFpgaImageCallable(const CreateFpgaImageRequestT& request) const
{
return SubmitCallable(&EC2Client::CreateFpgaImage, request);
}
/**
* An Async wrapper for CreateFpgaImage that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CreateFpgaImageAsync(const CreateFpgaImageRequestT& request, const CreateFpgaImageResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::CreateFpgaImage, request, handler, context);
}
/**
* 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 Amazon 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 Create
* an Amazon EBS-backed Linux AMI in the Amazon Elastic Compute Cloud User
* Guide.
See Also:
AWS API
* Reference
*/
virtual Model::CreateImageOutcome CreateImage(const Model::CreateImageRequest& request) const;
/**
* A Callable wrapper for CreateImage that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CreateImageOutcomeCallable CreateImageCallable(const CreateImageRequestT& request) const
{
return SubmitCallable(&EC2Client::CreateImage, request);
}
/**
* An Async wrapper for CreateImage that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CreateImageAsync(const CreateImageRequestT& request, const CreateImageResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::CreateImage, request, handler, context);
}
/**
* Creates an EC2 Instance Connect Endpoint.
An EC2 Instance Connect
* Endpoint allows you to connect to an instance, without requiring the instance to
* have a public IPv4 address. For more information, see Connect
* to your instances without requiring a public IPv4 address using EC2 Instance
* Connect Endpoint in the Amazon EC2 User Guide.
See
* Also:
AWS
* API Reference
*/
virtual Model::CreateInstanceConnectEndpointOutcome CreateInstanceConnectEndpoint(const Model::CreateInstanceConnectEndpointRequest& request) const;
/**
* A Callable wrapper for CreateInstanceConnectEndpoint that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CreateInstanceConnectEndpointOutcomeCallable CreateInstanceConnectEndpointCallable(const CreateInstanceConnectEndpointRequestT& request) const
{
return SubmitCallable(&EC2Client::CreateInstanceConnectEndpoint, request);
}
/**
* An Async wrapper for CreateInstanceConnectEndpoint that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CreateInstanceConnectEndpointAsync(const CreateInstanceConnectEndpointRequestT& request, const CreateInstanceConnectEndpointResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::CreateInstanceConnectEndpoint, request, handler, context);
}
/**
* Creates an event window in which scheduled events for the associated Amazon
* EC2 instances can run.
You can define either a set of time ranges or a
* cron expression when creating the event window, but not both. All event window
* times are in UTC.
You can create up to 200 event windows per Amazon Web
* Services Region.
When you create the event window, targets (instance IDs,
* Dedicated Host IDs, or tags) are not yet associated with it. To ensure that the
* event window can be used, you must associate one or more targets with it by
* using the AssociateInstanceEventWindow API.
Event
* windows are applicable only for scheduled events that stop, reboot, or terminate
* instances.
Event windows are not applicable for:
For more information, see Define
* event windows for scheduled events in the Amazon EC2 User
* Guide.
See Also:
AWS
* API Reference
*/
virtual Model::CreateInstanceEventWindowOutcome CreateInstanceEventWindow(const Model::CreateInstanceEventWindowRequest& request) const;
/**
* A Callable wrapper for CreateInstanceEventWindow that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CreateInstanceEventWindowOutcomeCallable CreateInstanceEventWindowCallable(const CreateInstanceEventWindowRequestT& request) const
{
return SubmitCallable(&EC2Client::CreateInstanceEventWindow, request);
}
/**
* An Async wrapper for CreateInstanceEventWindow that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CreateInstanceEventWindowAsync(const CreateInstanceEventWindowRequestT& request, const CreateInstanceEventWindowResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::CreateInstanceEventWindow, request, handler, context);
}
/**
* Exports a running or stopped instance to an Amazon S3 bucket.
For
* information about the prerequisites for your Amazon S3 bucket, supported
* operating systems, image formats, and known limitations for the types of
* instances you can export, see Exporting
* an instance as a VM Using VM Import/Export in the VM Import/Export User
* Guide.
See Also:
AWS
* API Reference
*/
virtual Model::CreateInstanceExportTaskOutcome CreateInstanceExportTask(const Model::CreateInstanceExportTaskRequest& request) const;
/**
* A Callable wrapper for CreateInstanceExportTask that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CreateInstanceExportTaskOutcomeCallable CreateInstanceExportTaskCallable(const CreateInstanceExportTaskRequestT& request) const
{
return SubmitCallable(&EC2Client::CreateInstanceExportTask, request);
}
/**
* An Async wrapper for CreateInstanceExportTask that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CreateInstanceExportTaskAsync(const CreateInstanceExportTaskRequestT& request, const CreateInstanceExportTaskResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::CreateInstanceExportTask, request, handler, context);
}
/**
* 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, see Internet
* gateways in the Amazon VPC User Guide.
See Also:
AWS
* API Reference
*/
virtual Model::CreateInternetGatewayOutcome CreateInternetGateway(const Model::CreateInternetGatewayRequest& request) const;
/**
* A Callable wrapper for CreateInternetGateway that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CreateInternetGatewayOutcomeCallable CreateInternetGatewayCallable(const CreateInternetGatewayRequestT& request) const
{
return SubmitCallable(&EC2Client::CreateInternetGateway, request);
}
/**
* An Async wrapper for CreateInternetGateway that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CreateInternetGatewayAsync(const CreateInternetGatewayRequestT& request, const CreateInternetGatewayResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::CreateInternetGateway, request, handler, context);
}
/**
* Create an IPAM. Amazon VPC IP Address Manager (IPAM) is a VPC feature that
* you can use to automate your IP address management workflows including
* assigning, tracking, troubleshooting, and auditing IP addresses across Amazon
* Web Services Regions and accounts throughout your Amazon Web Services
* Organization.
For more information, see Create an
* IPAM in the Amazon VPC IPAM User Guide.
See Also:
* AWS
* API Reference
*/
virtual Model::CreateIpamOutcome CreateIpam(const Model::CreateIpamRequest& request) const;
/**
* A Callable wrapper for CreateIpam that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CreateIpamOutcomeCallable CreateIpamCallable(const CreateIpamRequestT& request) const
{
return SubmitCallable(&EC2Client::CreateIpam, request);
}
/**
* An Async wrapper for CreateIpam that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CreateIpamAsync(const CreateIpamRequestT& request, const CreateIpamResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::CreateIpam, request, handler, context);
}
/**
* Create an IP address pool for Amazon VPC IP Address Manager (IPAM). In IPAM,
* a pool is a collection of contiguous IP addresses CIDRs. Pools enable you to
* organize your IP addresses according to your routing and security needs. For
* example, if you have separate routing and security needs for development and
* production applications, you can create a pool for each.
For more
* information, see Create a
* top-level pool in the Amazon VPC IPAM User Guide.
See
* Also:
AWS
* API Reference
*/
virtual Model::CreateIpamPoolOutcome CreateIpamPool(const Model::CreateIpamPoolRequest& request) const;
/**
* A Callable wrapper for CreateIpamPool that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CreateIpamPoolOutcomeCallable CreateIpamPoolCallable(const CreateIpamPoolRequestT& request) const
{
return SubmitCallable(&EC2Client::CreateIpamPool, request);
}
/**
* An Async wrapper for CreateIpamPool that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CreateIpamPoolAsync(const CreateIpamPoolRequestT& request, const CreateIpamPoolResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::CreateIpamPool, request, handler, context);
}
/**
* Creates an IPAM resource discovery. A resource discovery is an IPAM component
* that enables IPAM to manage and monitor resources that belong to the owning
* account.
See Also:
AWS
* API Reference
*/
virtual Model::CreateIpamResourceDiscoveryOutcome CreateIpamResourceDiscovery(const Model::CreateIpamResourceDiscoveryRequest& request) const;
/**
* A Callable wrapper for CreateIpamResourceDiscovery that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CreateIpamResourceDiscoveryOutcomeCallable CreateIpamResourceDiscoveryCallable(const CreateIpamResourceDiscoveryRequestT& request) const
{
return SubmitCallable(&EC2Client::CreateIpamResourceDiscovery, request);
}
/**
* An Async wrapper for CreateIpamResourceDiscovery that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CreateIpamResourceDiscoveryAsync(const CreateIpamResourceDiscoveryRequestT& request, const CreateIpamResourceDiscoveryResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::CreateIpamResourceDiscovery, request, handler, context);
}
/**
* Create an IPAM scope. In IPAM, a scope is the highest-level container within
* IPAM. An IPAM contains two default scopes. Each scope represents the IP space
* for a single network. The private scope is intended for all private IP address
* space. The public scope is intended for all public IP address space. Scopes
* enable you to reuse IP addresses across multiple unconnected networks without
* causing IP address overlap or conflict.
For more information, see Add a
* scope in the Amazon VPC IPAM User Guide.
See Also:
* AWS
* API Reference
*/
virtual Model::CreateIpamScopeOutcome CreateIpamScope(const Model::CreateIpamScopeRequest& request) const;
/**
* A Callable wrapper for CreateIpamScope that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CreateIpamScopeOutcomeCallable CreateIpamScopeCallable(const CreateIpamScopeRequestT& request) const
{
return SubmitCallable(&EC2Client::CreateIpamScope, request);
}
/**
* An Async wrapper for CreateIpamScope that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CreateIpamScopeAsync(const CreateIpamScopeRequestT& request, const CreateIpamScopeResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::CreateIpamScope, request, handler, context);
}
/**
* Creates an ED25519 or 2048-bit RSA key pair with the specified name and in
* the specified PEM or PPK format. 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#1 private key or an unencrypted PPK formatted
* private key for use with PuTTY. If a key with the specified name already exists,
* Amazon EC2 returns an error.
The key pair returned to you is available
* only in the Amazon Web Services Region in which you create it. If you prefer,
* you can create your own key pair using a third-party tool and upload it to any
* Region using ImportKeyPair.
You can have up to 5,000 key pairs per
* Amazon Web Services Region.
For more information, see Amazon
* EC2 key pairs in the Amazon Elastic Compute Cloud User
* Guide.
See Also:
AWS
* API Reference
*/
virtual Model::CreateKeyPairOutcome CreateKeyPair(const Model::CreateKeyPairRequest& request) const;
/**
* A Callable wrapper for CreateKeyPair that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CreateKeyPairOutcomeCallable CreateKeyPairCallable(const CreateKeyPairRequestT& request) const
{
return SubmitCallable(&EC2Client::CreateKeyPair, request);
}
/**
* An Async wrapper for CreateKeyPair that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CreateKeyPairAsync(const CreateKeyPairRequestT& request, const CreateKeyPairResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::CreateKeyPair, request, handler, context);
}
/**
* Creates a launch template.
A launch template contains the parameters
* to launch an instance. When you launch an instance using RunInstances,
* you can specify a launch template instead of providing the launch parameters in
* the request. For more information, see Launch
* an instance from a launch template in the Amazon Elastic Compute Cloud
* User Guide.
If you want to clone an existing launch template as the
* basis for creating a new launch template, you can use the Amazon EC2 console.
* The API, SDKs, and CLI do not support cloning a template. For more information,
* see Create
* a launch template from an existing launch template in the Amazon Elastic
* Compute Cloud User Guide.
See Also:
AWS
* API Reference
*/
virtual Model::CreateLaunchTemplateOutcome CreateLaunchTemplate(const Model::CreateLaunchTemplateRequest& request) const;
/**
* A Callable wrapper for CreateLaunchTemplate that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CreateLaunchTemplateOutcomeCallable CreateLaunchTemplateCallable(const CreateLaunchTemplateRequestT& request) const
{
return SubmitCallable(&EC2Client::CreateLaunchTemplate, request);
}
/**
* An Async wrapper for CreateLaunchTemplate that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CreateLaunchTemplateAsync(const CreateLaunchTemplateRequestT& request, const CreateLaunchTemplateResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::CreateLaunchTemplate, request, handler, context);
}
/**
* Creates a new version of a launch template. You can specify an existing
* version of launch template from which to base the new version.
Launch
* template versions are numbered in the order in which they are created. You
* cannot specify, change, or replace the numbering of launch template
* versions.
Launch templates are immutable; after you create a launch
* template, you can't modify it. Instead, you can create a new version of the
* launch template that includes any changes you require.
For more
* information, see Modify
* a launch template (manage launch template versions) in the Amazon Elastic
* Compute Cloud User Guide.
See Also:
AWS
* API Reference
*/
virtual Model::CreateLaunchTemplateVersionOutcome CreateLaunchTemplateVersion(const Model::CreateLaunchTemplateVersionRequest& request) const;
/**
* A Callable wrapper for CreateLaunchTemplateVersion that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CreateLaunchTemplateVersionOutcomeCallable CreateLaunchTemplateVersionCallable(const CreateLaunchTemplateVersionRequestT& request) const
{
return SubmitCallable(&EC2Client::CreateLaunchTemplateVersion, request);
}
/**
* An Async wrapper for CreateLaunchTemplateVersion that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CreateLaunchTemplateVersionAsync(const CreateLaunchTemplateVersionRequestT& request, const CreateLaunchTemplateVersionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::CreateLaunchTemplateVersion, request, handler, context);
}
/**
* Creates a static route for the specified local gateway route table. You must
* specify one of the following targets:
See Also:
AWS
* API Reference
*/
virtual Model::CreateLocalGatewayRouteOutcome CreateLocalGatewayRoute(const Model::CreateLocalGatewayRouteRequest& request) const;
/**
* A Callable wrapper for CreateLocalGatewayRoute that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CreateLocalGatewayRouteOutcomeCallable CreateLocalGatewayRouteCallable(const CreateLocalGatewayRouteRequestT& request) const
{
return SubmitCallable(&EC2Client::CreateLocalGatewayRoute, request);
}
/**
* An Async wrapper for CreateLocalGatewayRoute that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CreateLocalGatewayRouteAsync(const CreateLocalGatewayRouteRequestT& request, const CreateLocalGatewayRouteResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::CreateLocalGatewayRoute, request, handler, context);
}
/**
* Creates a local gateway route table.
See Also:
AWS
* API Reference
*/
virtual Model::CreateLocalGatewayRouteTableOutcome CreateLocalGatewayRouteTable(const Model::CreateLocalGatewayRouteTableRequest& request) const;
/**
* A Callable wrapper for CreateLocalGatewayRouteTable that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CreateLocalGatewayRouteTableOutcomeCallable CreateLocalGatewayRouteTableCallable(const CreateLocalGatewayRouteTableRequestT& request) const
{
return SubmitCallable(&EC2Client::CreateLocalGatewayRouteTable, request);
}
/**
* An Async wrapper for CreateLocalGatewayRouteTable that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CreateLocalGatewayRouteTableAsync(const CreateLocalGatewayRouteTableRequestT& request, const CreateLocalGatewayRouteTableResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::CreateLocalGatewayRouteTable, request, handler, context);
}
/**
* Creates a local gateway route table virtual interface group association.
*
See Also:
AWS
* API Reference
*/
virtual Model::CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationOutcome CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociation(const Model::CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationRequest& request) const;
/**
* A Callable wrapper for CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociation that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationOutcomeCallable CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationCallable(const CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationRequestT& request) const
{
return SubmitCallable(&EC2Client::CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociation, request);
}
/**
* An Async wrapper for CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociation that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationAsync(const CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationRequestT& request, const CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EC2Client::CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociation, request, handler, context);
}
/**
* Associates the specified VPC with the specified local gateway route
* table.
See Also:
AWS
* API Reference
*/
virtual Model::CreateLocalGatewayRouteTableVpcAssociationOutcome CreateLocalGatewayRouteTableVpcAssociation(const Model::CreateLocalGatewayRouteTableVpcAssociationRequest& request) const;
/**
* A Callable wrapper for CreateLocalGatewayRouteTableVpcAssociation that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CreateLocalGatewayRouteTableVpcAssociationOutcomeCallable CreateLocalGatewayRouteTableVpcAssociationCallable(const CreateLocalGatewayRouteTableVpcAssociationRequestT& request) const
{
return SubmitCallable(&EC2Client::CreateLocalGatewayRouteTableVpcAssociation, request);
}
/**
* An Async wrapper for CreateLocalGatewayRouteTableVpcAssociation that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template