1 /**
2  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3  * SPDX-License-Identifier: Apache-2.0.
4  */
5 
6 #pragma once
7 #include <aws/ec2/EC2_EXPORTS.h>
8 #include <aws/ec2/EC2Errors.h>
9 #include <aws/core/client/AWSError.h>
10 #include <aws/core/client/ClientConfiguration.h>
11 #include <aws/core/AmazonSerializableWebServiceRequest.h>
12 #include <aws/core/client/AWSClient.h>
13 #include <aws/core/utils/memory/stl/AWSString.h>
14 #include <aws/core/utils/xml/XmlSerializer.h>
15 #include <aws/ec2/model/AcceptReservedInstancesExchangeQuoteResponse.h>
16 #include <aws/ec2/model/AcceptTransitGatewayMulticastDomainAssociationsResponse.h>
17 #include <aws/ec2/model/AcceptTransitGatewayPeeringAttachmentResponse.h>
18 #include <aws/ec2/model/AcceptTransitGatewayVpcAttachmentResponse.h>
19 #include <aws/ec2/model/AcceptVpcEndpointConnectionsResponse.h>
20 #include <aws/ec2/model/AcceptVpcPeeringConnectionResponse.h>
21 #include <aws/ec2/model/AdvertiseByoipCidrResponse.h>
22 #include <aws/ec2/model/AllocateAddressResponse.h>
23 #include <aws/ec2/model/AllocateHostsResponse.h>
24 #include <aws/ec2/model/ApplySecurityGroupsToClientVpnTargetNetworkResponse.h>
25 #include <aws/ec2/model/AssignIpv6AddressesResponse.h>
26 #include <aws/ec2/model/AssignPrivateIpAddressesResponse.h>
27 #include <aws/ec2/model/AssociateAddressResponse.h>
28 #include <aws/ec2/model/AssociateClientVpnTargetNetworkResponse.h>
29 #include <aws/ec2/model/AssociateEnclaveCertificateIamRoleResponse.h>
30 #include <aws/ec2/model/AssociateIamInstanceProfileResponse.h>
31 #include <aws/ec2/model/AssociateInstanceEventWindowResponse.h>
32 #include <aws/ec2/model/AssociateRouteTableResponse.h>
33 #include <aws/ec2/model/AssociateSubnetCidrBlockResponse.h>
34 #include <aws/ec2/model/AssociateTransitGatewayMulticastDomainResponse.h>
35 #include <aws/ec2/model/AssociateTransitGatewayRouteTableResponse.h>
36 #include <aws/ec2/model/AssociateTrunkInterfaceResponse.h>
37 #include <aws/ec2/model/AssociateVpcCidrBlockResponse.h>
38 #include <aws/ec2/model/AttachClassicLinkVpcResponse.h>
39 #include <aws/ec2/model/AttachNetworkInterfaceResponse.h>
40 #include <aws/ec2/model/AttachVolumeResponse.h>
41 #include <aws/ec2/model/AttachVpnGatewayResponse.h>
42 #include <aws/ec2/model/AuthorizeClientVpnIngressResponse.h>
43 #include <aws/ec2/model/AuthorizeSecurityGroupEgressResponse.h>
44 #include <aws/ec2/model/AuthorizeSecurityGroupIngressResponse.h>
45 #include <aws/ec2/model/BundleInstanceResponse.h>
46 #include <aws/ec2/model/CancelBundleTaskResponse.h>
47 #include <aws/ec2/model/CancelCapacityReservationResponse.h>
48 #include <aws/ec2/model/CancelCapacityReservationFleetsResponse.h>
49 #include <aws/ec2/model/CancelImportTaskResponse.h>
50 #include <aws/ec2/model/CancelReservedInstancesListingResponse.h>
51 #include <aws/ec2/model/CancelSpotFleetRequestsResponse.h>
52 #include <aws/ec2/model/CancelSpotInstanceRequestsResponse.h>
53 #include <aws/ec2/model/ConfirmProductInstanceResponse.h>
54 #include <aws/ec2/model/CopyFpgaImageResponse.h>
55 #include <aws/ec2/model/CopyImageResponse.h>
56 #include <aws/ec2/model/CopySnapshotResponse.h>
57 #include <aws/ec2/model/CreateCapacityReservationResponse.h>
58 #include <aws/ec2/model/CreateCapacityReservationFleetResponse.h>
59 #include <aws/ec2/model/CreateCarrierGatewayResponse.h>
60 #include <aws/ec2/model/CreateClientVpnEndpointResponse.h>
61 #include <aws/ec2/model/CreateClientVpnRouteResponse.h>
62 #include <aws/ec2/model/CreateCustomerGatewayResponse.h>
63 #include <aws/ec2/model/CreateDefaultSubnetResponse.h>
64 #include <aws/ec2/model/CreateDefaultVpcResponse.h>
65 #include <aws/ec2/model/CreateDhcpOptionsResponse.h>
66 #include <aws/ec2/model/CreateEgressOnlyInternetGatewayResponse.h>
67 #include <aws/ec2/model/CreateFleetResponse.h>
68 #include <aws/ec2/model/CreateFlowLogsResponse.h>
69 #include <aws/ec2/model/CreateFpgaImageResponse.h>
70 #include <aws/ec2/model/CreateImageResponse.h>
71 #include <aws/ec2/model/CreateInstanceEventWindowResponse.h>
72 #include <aws/ec2/model/CreateInstanceExportTaskResponse.h>
73 #include <aws/ec2/model/CreateInternetGatewayResponse.h>
74 #include <aws/ec2/model/CreateKeyPairResponse.h>
75 #include <aws/ec2/model/CreateLaunchTemplateResponse.h>
76 #include <aws/ec2/model/CreateLaunchTemplateVersionResponse.h>
77 #include <aws/ec2/model/CreateLocalGatewayRouteResponse.h>
78 #include <aws/ec2/model/CreateLocalGatewayRouteTableVpcAssociationResponse.h>
79 #include <aws/ec2/model/CreateManagedPrefixListResponse.h>
80 #include <aws/ec2/model/CreateNatGatewayResponse.h>
81 #include <aws/ec2/model/CreateNetworkAclResponse.h>
82 #include <aws/ec2/model/CreateNetworkInsightsPathResponse.h>
83 #include <aws/ec2/model/CreateNetworkInterfaceResponse.h>
84 #include <aws/ec2/model/CreateNetworkInterfacePermissionResponse.h>
85 #include <aws/ec2/model/CreatePlacementGroupResponse.h>
86 #include <aws/ec2/model/CreateReplaceRootVolumeTaskResponse.h>
87 #include <aws/ec2/model/CreateReservedInstancesListingResponse.h>
88 #include <aws/ec2/model/CreateRestoreImageTaskResponse.h>
89 #include <aws/ec2/model/CreateRouteResponse.h>
90 #include <aws/ec2/model/CreateRouteTableResponse.h>
91 #include <aws/ec2/model/CreateSecurityGroupResponse.h>
92 #include <aws/ec2/model/CreateSnapshotResponse.h>
93 #include <aws/ec2/model/CreateSnapshotsResponse.h>
94 #include <aws/ec2/model/CreateSpotDatafeedSubscriptionResponse.h>
95 #include <aws/ec2/model/CreateStoreImageTaskResponse.h>
96 #include <aws/ec2/model/CreateSubnetResponse.h>
97 #include <aws/ec2/model/CreateSubnetCidrReservationResponse.h>
98 #include <aws/ec2/model/CreateTrafficMirrorFilterResponse.h>
99 #include <aws/ec2/model/CreateTrafficMirrorFilterRuleResponse.h>
100 #include <aws/ec2/model/CreateTrafficMirrorSessionResponse.h>
101 #include <aws/ec2/model/CreateTrafficMirrorTargetResponse.h>
102 #include <aws/ec2/model/CreateTransitGatewayResponse.h>
103 #include <aws/ec2/model/CreateTransitGatewayConnectResponse.h>
104 #include <aws/ec2/model/CreateTransitGatewayConnectPeerResponse.h>
105 #include <aws/ec2/model/CreateTransitGatewayMulticastDomainResponse.h>
106 #include <aws/ec2/model/CreateTransitGatewayPeeringAttachmentResponse.h>
107 #include <aws/ec2/model/CreateTransitGatewayPrefixListReferenceResponse.h>
108 #include <aws/ec2/model/CreateTransitGatewayRouteResponse.h>
109 #include <aws/ec2/model/CreateTransitGatewayRouteTableResponse.h>
110 #include <aws/ec2/model/CreateTransitGatewayVpcAttachmentResponse.h>
111 #include <aws/ec2/model/CreateVolumeResponse.h>
112 #include <aws/ec2/model/CreateVpcResponse.h>
113 #include <aws/ec2/model/CreateVpcEndpointResponse.h>
114 #include <aws/ec2/model/CreateVpcEndpointConnectionNotificationResponse.h>
115 #include <aws/ec2/model/CreateVpcEndpointServiceConfigurationResponse.h>
116 #include <aws/ec2/model/CreateVpcPeeringConnectionResponse.h>
117 #include <aws/ec2/model/CreateVpnConnectionResponse.h>
118 #include <aws/ec2/model/CreateVpnGatewayResponse.h>
119 #include <aws/ec2/model/DeleteCarrierGatewayResponse.h>
120 #include <aws/ec2/model/DeleteClientVpnEndpointResponse.h>
121 #include <aws/ec2/model/DeleteClientVpnRouteResponse.h>
122 #include <aws/ec2/model/DeleteEgressOnlyInternetGatewayResponse.h>
123 #include <aws/ec2/model/DeleteFleetsResponse.h>
124 #include <aws/ec2/model/DeleteFlowLogsResponse.h>
125 #include <aws/ec2/model/DeleteFpgaImageResponse.h>
126 #include <aws/ec2/model/DeleteInstanceEventWindowResponse.h>
127 #include <aws/ec2/model/DeleteLaunchTemplateResponse.h>
128 #include <aws/ec2/model/DeleteLaunchTemplateVersionsResponse.h>
129 #include <aws/ec2/model/DeleteLocalGatewayRouteResponse.h>
130 #include <aws/ec2/model/DeleteLocalGatewayRouteTableVpcAssociationResponse.h>
131 #include <aws/ec2/model/DeleteManagedPrefixListResponse.h>
132 #include <aws/ec2/model/DeleteNatGatewayResponse.h>
133 #include <aws/ec2/model/DeleteNetworkInsightsAnalysisResponse.h>
134 #include <aws/ec2/model/DeleteNetworkInsightsPathResponse.h>
135 #include <aws/ec2/model/DeleteNetworkInterfacePermissionResponse.h>
136 #include <aws/ec2/model/DeleteQueuedReservedInstancesResponse.h>
137 #include <aws/ec2/model/DeleteSubnetCidrReservationResponse.h>
138 #include <aws/ec2/model/DeleteTrafficMirrorFilterResponse.h>
139 #include <aws/ec2/model/DeleteTrafficMirrorFilterRuleResponse.h>
140 #include <aws/ec2/model/DeleteTrafficMirrorSessionResponse.h>
141 #include <aws/ec2/model/DeleteTrafficMirrorTargetResponse.h>
142 #include <aws/ec2/model/DeleteTransitGatewayResponse.h>
143 #include <aws/ec2/model/DeleteTransitGatewayConnectResponse.h>
144 #include <aws/ec2/model/DeleteTransitGatewayConnectPeerResponse.h>
145 #include <aws/ec2/model/DeleteTransitGatewayMulticastDomainResponse.h>
146 #include <aws/ec2/model/DeleteTransitGatewayPeeringAttachmentResponse.h>
147 #include <aws/ec2/model/DeleteTransitGatewayPrefixListReferenceResponse.h>
148 #include <aws/ec2/model/DeleteTransitGatewayRouteResponse.h>
149 #include <aws/ec2/model/DeleteTransitGatewayRouteTableResponse.h>
150 #include <aws/ec2/model/DeleteTransitGatewayVpcAttachmentResponse.h>
151 #include <aws/ec2/model/DeleteVpcEndpointConnectionNotificationsResponse.h>
152 #include <aws/ec2/model/DeleteVpcEndpointServiceConfigurationsResponse.h>
153 #include <aws/ec2/model/DeleteVpcEndpointsResponse.h>
154 #include <aws/ec2/model/DeleteVpcPeeringConnectionResponse.h>
155 #include <aws/ec2/model/DeprovisionByoipCidrResponse.h>
156 #include <aws/ec2/model/DeregisterInstanceEventNotificationAttributesResponse.h>
157 #include <aws/ec2/model/DeregisterTransitGatewayMulticastGroupMembersResponse.h>
158 #include <aws/ec2/model/DeregisterTransitGatewayMulticastGroupSourcesResponse.h>
159 #include <aws/ec2/model/DescribeAccountAttributesResponse.h>
160 #include <aws/ec2/model/DescribeAddressesResponse.h>
161 #include <aws/ec2/model/DescribeAddressesAttributeResponse.h>
162 #include <aws/ec2/model/DescribeAggregateIdFormatResponse.h>
163 #include <aws/ec2/model/DescribeAvailabilityZonesResponse.h>
164 #include <aws/ec2/model/DescribeBundleTasksResponse.h>
165 #include <aws/ec2/model/DescribeByoipCidrsResponse.h>
166 #include <aws/ec2/model/DescribeCapacityReservationFleetsResponse.h>
167 #include <aws/ec2/model/DescribeCapacityReservationsResponse.h>
168 #include <aws/ec2/model/DescribeCarrierGatewaysResponse.h>
169 #include <aws/ec2/model/DescribeClassicLinkInstancesResponse.h>
170 #include <aws/ec2/model/DescribeClientVpnAuthorizationRulesResponse.h>
171 #include <aws/ec2/model/DescribeClientVpnConnectionsResponse.h>
172 #include <aws/ec2/model/DescribeClientVpnEndpointsResponse.h>
173 #include <aws/ec2/model/DescribeClientVpnRoutesResponse.h>
174 #include <aws/ec2/model/DescribeClientVpnTargetNetworksResponse.h>
175 #include <aws/ec2/model/DescribeCoipPoolsResponse.h>
176 #include <aws/ec2/model/DescribeConversionTasksResponse.h>
177 #include <aws/ec2/model/DescribeCustomerGatewaysResponse.h>
178 #include <aws/ec2/model/DescribeDhcpOptionsResponse.h>
179 #include <aws/ec2/model/DescribeEgressOnlyInternetGatewaysResponse.h>
180 #include <aws/ec2/model/DescribeElasticGpusResponse.h>
181 #include <aws/ec2/model/DescribeExportImageTasksResponse.h>
182 #include <aws/ec2/model/DescribeExportTasksResponse.h>
183 #include <aws/ec2/model/DescribeFastSnapshotRestoresResponse.h>
184 #include <aws/ec2/model/DescribeFleetHistoryResponse.h>
185 #include <aws/ec2/model/DescribeFleetInstancesResponse.h>
186 #include <aws/ec2/model/DescribeFleetsResponse.h>
187 #include <aws/ec2/model/DescribeFlowLogsResponse.h>
188 #include <aws/ec2/model/DescribeFpgaImageAttributeResponse.h>
189 #include <aws/ec2/model/DescribeFpgaImagesResponse.h>
190 #include <aws/ec2/model/DescribeHostReservationOfferingsResponse.h>
191 #include <aws/ec2/model/DescribeHostReservationsResponse.h>
192 #include <aws/ec2/model/DescribeHostsResponse.h>
193 #include <aws/ec2/model/DescribeIamInstanceProfileAssociationsResponse.h>
194 #include <aws/ec2/model/DescribeIdFormatResponse.h>
195 #include <aws/ec2/model/DescribeIdentityIdFormatResponse.h>
196 #include <aws/ec2/model/DescribeImageAttributeResponse.h>
197 #include <aws/ec2/model/DescribeImagesResponse.h>
198 #include <aws/ec2/model/DescribeImportImageTasksResponse.h>
199 #include <aws/ec2/model/DescribeImportSnapshotTasksResponse.h>
200 #include <aws/ec2/model/DescribeInstanceAttributeResponse.h>
201 #include <aws/ec2/model/DescribeInstanceCreditSpecificationsResponse.h>
202 #include <aws/ec2/model/DescribeInstanceEventNotificationAttributesResponse.h>
203 #include <aws/ec2/model/DescribeInstanceEventWindowsResponse.h>
204 #include <aws/ec2/model/DescribeInstanceStatusResponse.h>
205 #include <aws/ec2/model/DescribeInstanceTypeOfferingsResponse.h>
206 #include <aws/ec2/model/DescribeInstanceTypesResponse.h>
207 #include <aws/ec2/model/DescribeInstancesResponse.h>
208 #include <aws/ec2/model/DescribeInternetGatewaysResponse.h>
209 #include <aws/ec2/model/DescribeIpv6PoolsResponse.h>
210 #include <aws/ec2/model/DescribeKeyPairsResponse.h>
211 #include <aws/ec2/model/DescribeLaunchTemplateVersionsResponse.h>
212 #include <aws/ec2/model/DescribeLaunchTemplatesResponse.h>
213 #include <aws/ec2/model/DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsResponse.h>
214 #include <aws/ec2/model/DescribeLocalGatewayRouteTableVpcAssociationsResponse.h>
215 #include <aws/ec2/model/DescribeLocalGatewayRouteTablesResponse.h>
216 #include <aws/ec2/model/DescribeLocalGatewayVirtualInterfaceGroupsResponse.h>
217 #include <aws/ec2/model/DescribeLocalGatewayVirtualInterfacesResponse.h>
218 #include <aws/ec2/model/DescribeLocalGatewaysResponse.h>
219 #include <aws/ec2/model/DescribeManagedPrefixListsResponse.h>
220 #include <aws/ec2/model/DescribeMovingAddressesResponse.h>
221 #include <aws/ec2/model/DescribeNatGatewaysResponse.h>
222 #include <aws/ec2/model/DescribeNetworkAclsResponse.h>
223 #include <aws/ec2/model/DescribeNetworkInsightsAnalysesResponse.h>
224 #include <aws/ec2/model/DescribeNetworkInsightsPathsResponse.h>
225 #include <aws/ec2/model/DescribeNetworkInterfaceAttributeResponse.h>
226 #include <aws/ec2/model/DescribeNetworkInterfacePermissionsResponse.h>
227 #include <aws/ec2/model/DescribeNetworkInterfacesResponse.h>
228 #include <aws/ec2/model/DescribePlacementGroupsResponse.h>
229 #include <aws/ec2/model/DescribePrefixListsResponse.h>
230 #include <aws/ec2/model/DescribePrincipalIdFormatResponse.h>
231 #include <aws/ec2/model/DescribePublicIpv4PoolsResponse.h>
232 #include <aws/ec2/model/DescribeRegionsResponse.h>
233 #include <aws/ec2/model/DescribeReplaceRootVolumeTasksResponse.h>
234 #include <aws/ec2/model/DescribeReservedInstancesResponse.h>
235 #include <aws/ec2/model/DescribeReservedInstancesListingsResponse.h>
236 #include <aws/ec2/model/DescribeReservedInstancesModificationsResponse.h>
237 #include <aws/ec2/model/DescribeReservedInstancesOfferingsResponse.h>
238 #include <aws/ec2/model/DescribeRouteTablesResponse.h>
239 #include <aws/ec2/model/DescribeScheduledInstanceAvailabilityResponse.h>
240 #include <aws/ec2/model/DescribeScheduledInstancesResponse.h>
241 #include <aws/ec2/model/DescribeSecurityGroupReferencesResponse.h>
242 #include <aws/ec2/model/DescribeSecurityGroupRulesResponse.h>
243 #include <aws/ec2/model/DescribeSecurityGroupsResponse.h>
244 #include <aws/ec2/model/DescribeSnapshotAttributeResponse.h>
245 #include <aws/ec2/model/DescribeSnapshotsResponse.h>
246 #include <aws/ec2/model/DescribeSpotDatafeedSubscriptionResponse.h>
247 #include <aws/ec2/model/DescribeSpotFleetInstancesResponse.h>
248 #include <aws/ec2/model/DescribeSpotFleetRequestHistoryResponse.h>
249 #include <aws/ec2/model/DescribeSpotFleetRequestsResponse.h>
250 #include <aws/ec2/model/DescribeSpotInstanceRequestsResponse.h>
251 #include <aws/ec2/model/DescribeSpotPriceHistoryResponse.h>
252 #include <aws/ec2/model/DescribeStaleSecurityGroupsResponse.h>
253 #include <aws/ec2/model/DescribeStoreImageTasksResponse.h>
254 #include <aws/ec2/model/DescribeSubnetsResponse.h>
255 #include <aws/ec2/model/DescribeTagsResponse.h>
256 #include <aws/ec2/model/DescribeTrafficMirrorFiltersResponse.h>
257 #include <aws/ec2/model/DescribeTrafficMirrorSessionsResponse.h>
258 #include <aws/ec2/model/DescribeTrafficMirrorTargetsResponse.h>
259 #include <aws/ec2/model/DescribeTransitGatewayAttachmentsResponse.h>
260 #include <aws/ec2/model/DescribeTransitGatewayConnectPeersResponse.h>
261 #include <aws/ec2/model/DescribeTransitGatewayConnectsResponse.h>
262 #include <aws/ec2/model/DescribeTransitGatewayMulticastDomainsResponse.h>
263 #include <aws/ec2/model/DescribeTransitGatewayPeeringAttachmentsResponse.h>
264 #include <aws/ec2/model/DescribeTransitGatewayRouteTablesResponse.h>
265 #include <aws/ec2/model/DescribeTransitGatewayVpcAttachmentsResponse.h>
266 #include <aws/ec2/model/DescribeTransitGatewaysResponse.h>
267 #include <aws/ec2/model/DescribeTrunkInterfaceAssociationsResponse.h>
268 #include <aws/ec2/model/DescribeVolumeAttributeResponse.h>
269 #include <aws/ec2/model/DescribeVolumeStatusResponse.h>
270 #include <aws/ec2/model/DescribeVolumesResponse.h>
271 #include <aws/ec2/model/DescribeVolumesModificationsResponse.h>
272 #include <aws/ec2/model/DescribeVpcAttributeResponse.h>
273 #include <aws/ec2/model/DescribeVpcClassicLinkResponse.h>
274 #include <aws/ec2/model/DescribeVpcClassicLinkDnsSupportResponse.h>
275 #include <aws/ec2/model/DescribeVpcEndpointConnectionNotificationsResponse.h>
276 #include <aws/ec2/model/DescribeVpcEndpointConnectionsResponse.h>
277 #include <aws/ec2/model/DescribeVpcEndpointServiceConfigurationsResponse.h>
278 #include <aws/ec2/model/DescribeVpcEndpointServicePermissionsResponse.h>
279 #include <aws/ec2/model/DescribeVpcEndpointServicesResponse.h>
280 #include <aws/ec2/model/DescribeVpcEndpointsResponse.h>
281 #include <aws/ec2/model/DescribeVpcPeeringConnectionsResponse.h>
282 #include <aws/ec2/model/DescribeVpcsResponse.h>
283 #include <aws/ec2/model/DescribeVpnConnectionsResponse.h>
284 #include <aws/ec2/model/DescribeVpnGatewaysResponse.h>
285 #include <aws/ec2/model/DetachClassicLinkVpcResponse.h>
286 #include <aws/ec2/model/DetachVolumeResponse.h>
287 #include <aws/ec2/model/DisableEbsEncryptionByDefaultResponse.h>
288 #include <aws/ec2/model/DisableFastSnapshotRestoresResponse.h>
289 #include <aws/ec2/model/DisableImageDeprecationResponse.h>
290 #include <aws/ec2/model/DisableSerialConsoleAccessResponse.h>
291 #include <aws/ec2/model/DisableTransitGatewayRouteTablePropagationResponse.h>
292 #include <aws/ec2/model/DisableVpcClassicLinkResponse.h>
293 #include <aws/ec2/model/DisableVpcClassicLinkDnsSupportResponse.h>
294 #include <aws/ec2/model/DisassociateClientVpnTargetNetworkResponse.h>
295 #include <aws/ec2/model/DisassociateEnclaveCertificateIamRoleResponse.h>
296 #include <aws/ec2/model/DisassociateIamInstanceProfileResponse.h>
297 #include <aws/ec2/model/DisassociateInstanceEventWindowResponse.h>
298 #include <aws/ec2/model/DisassociateSubnetCidrBlockResponse.h>
299 #include <aws/ec2/model/DisassociateTransitGatewayMulticastDomainResponse.h>
300 #include <aws/ec2/model/DisassociateTransitGatewayRouteTableResponse.h>
301 #include <aws/ec2/model/DisassociateTrunkInterfaceResponse.h>
302 #include <aws/ec2/model/DisassociateVpcCidrBlockResponse.h>
303 #include <aws/ec2/model/EnableEbsEncryptionByDefaultResponse.h>
304 #include <aws/ec2/model/EnableFastSnapshotRestoresResponse.h>
305 #include <aws/ec2/model/EnableImageDeprecationResponse.h>
306 #include <aws/ec2/model/EnableSerialConsoleAccessResponse.h>
307 #include <aws/ec2/model/EnableTransitGatewayRouteTablePropagationResponse.h>
308 #include <aws/ec2/model/EnableVpcClassicLinkResponse.h>
309 #include <aws/ec2/model/EnableVpcClassicLinkDnsSupportResponse.h>
310 #include <aws/ec2/model/ExportClientVpnClientCertificateRevocationListResponse.h>
311 #include <aws/ec2/model/ExportClientVpnClientConfigurationResponse.h>
312 #include <aws/ec2/model/ExportImageResponse.h>
313 #include <aws/ec2/model/ExportTransitGatewayRoutesResponse.h>
314 #include <aws/ec2/model/GetAssociatedEnclaveCertificateIamRolesResponse.h>
315 #include <aws/ec2/model/GetAssociatedIpv6PoolCidrsResponse.h>
316 #include <aws/ec2/model/GetCapacityReservationUsageResponse.h>
317 #include <aws/ec2/model/GetCoipPoolUsageResponse.h>
318 #include <aws/ec2/model/GetConsoleOutputResponse.h>
319 #include <aws/ec2/model/GetConsoleScreenshotResponse.h>
320 #include <aws/ec2/model/GetDefaultCreditSpecificationResponse.h>
321 #include <aws/ec2/model/GetEbsDefaultKmsKeyIdResponse.h>
322 #include <aws/ec2/model/GetEbsEncryptionByDefaultResponse.h>
323 #include <aws/ec2/model/GetFlowLogsIntegrationTemplateResponse.h>
324 #include <aws/ec2/model/GetGroupsForCapacityReservationResponse.h>
325 #include <aws/ec2/model/GetHostReservationPurchasePreviewResponse.h>
326 #include <aws/ec2/model/GetLaunchTemplateDataResponse.h>
327 #include <aws/ec2/model/GetManagedPrefixListAssociationsResponse.h>
328 #include <aws/ec2/model/GetManagedPrefixListEntriesResponse.h>
329 #include <aws/ec2/model/GetPasswordDataResponse.h>
330 #include <aws/ec2/model/GetReservedInstancesExchangeQuoteResponse.h>
331 #include <aws/ec2/model/GetSerialConsoleAccessStatusResponse.h>
332 #include <aws/ec2/model/GetSubnetCidrReservationsResponse.h>
333 #include <aws/ec2/model/GetTransitGatewayAttachmentPropagationsResponse.h>
334 #include <aws/ec2/model/GetTransitGatewayMulticastDomainAssociationsResponse.h>
335 #include <aws/ec2/model/GetTransitGatewayPrefixListReferencesResponse.h>
336 #include <aws/ec2/model/GetTransitGatewayRouteTableAssociationsResponse.h>
337 #include <aws/ec2/model/GetTransitGatewayRouteTablePropagationsResponse.h>
338 #include <aws/ec2/model/GetVpnConnectionDeviceSampleConfigurationResponse.h>
339 #include <aws/ec2/model/GetVpnConnectionDeviceTypesResponse.h>
340 #include <aws/ec2/model/ImportClientVpnClientCertificateRevocationListResponse.h>
341 #include <aws/ec2/model/ImportImageResponse.h>
342 #include <aws/ec2/model/ImportInstanceResponse.h>
343 #include <aws/ec2/model/ImportKeyPairResponse.h>
344 #include <aws/ec2/model/ImportSnapshotResponse.h>
345 #include <aws/ec2/model/ImportVolumeResponse.h>
346 #include <aws/ec2/model/ModifyAddressAttributeResponse.h>
347 #include <aws/ec2/model/ModifyAvailabilityZoneGroupResponse.h>
348 #include <aws/ec2/model/ModifyCapacityReservationResponse.h>
349 #include <aws/ec2/model/ModifyCapacityReservationFleetResponse.h>
350 #include <aws/ec2/model/ModifyClientVpnEndpointResponse.h>
351 #include <aws/ec2/model/ModifyDefaultCreditSpecificationResponse.h>
352 #include <aws/ec2/model/ModifyEbsDefaultKmsKeyIdResponse.h>
353 #include <aws/ec2/model/ModifyFleetResponse.h>
354 #include <aws/ec2/model/ModifyFpgaImageAttributeResponse.h>
355 #include <aws/ec2/model/ModifyHostsResponse.h>
356 #include <aws/ec2/model/ModifyInstanceCapacityReservationAttributesResponse.h>
357 #include <aws/ec2/model/ModifyInstanceCreditSpecificationResponse.h>
358 #include <aws/ec2/model/ModifyInstanceEventStartTimeResponse.h>
359 #include <aws/ec2/model/ModifyInstanceEventWindowResponse.h>
360 #include <aws/ec2/model/ModifyInstanceMetadataOptionsResponse.h>
361 #include <aws/ec2/model/ModifyInstancePlacementResponse.h>
362 #include <aws/ec2/model/ModifyLaunchTemplateResponse.h>
363 #include <aws/ec2/model/ModifyManagedPrefixListResponse.h>
364 #include <aws/ec2/model/ModifyReservedInstancesResponse.h>
365 #include <aws/ec2/model/ModifySecurityGroupRulesResponse.h>
366 #include <aws/ec2/model/ModifySpotFleetRequestResponse.h>
367 #include <aws/ec2/model/ModifyTrafficMirrorFilterNetworkServicesResponse.h>
368 #include <aws/ec2/model/ModifyTrafficMirrorFilterRuleResponse.h>
369 #include <aws/ec2/model/ModifyTrafficMirrorSessionResponse.h>
370 #include <aws/ec2/model/ModifyTransitGatewayResponse.h>
371 #include <aws/ec2/model/ModifyTransitGatewayPrefixListReferenceResponse.h>
372 #include <aws/ec2/model/ModifyTransitGatewayVpcAttachmentResponse.h>
373 #include <aws/ec2/model/ModifyVolumeResponse.h>
374 #include <aws/ec2/model/ModifyVpcEndpointResponse.h>
375 #include <aws/ec2/model/ModifyVpcEndpointConnectionNotificationResponse.h>
376 #include <aws/ec2/model/ModifyVpcEndpointServiceConfigurationResponse.h>
377 #include <aws/ec2/model/ModifyVpcEndpointServicePermissionsResponse.h>
378 #include <aws/ec2/model/ModifyVpcPeeringConnectionOptionsResponse.h>
379 #include <aws/ec2/model/ModifyVpcTenancyResponse.h>
380 #include <aws/ec2/model/ModifyVpnConnectionResponse.h>
381 #include <aws/ec2/model/ModifyVpnConnectionOptionsResponse.h>
382 #include <aws/ec2/model/ModifyVpnTunnelCertificateResponse.h>
383 #include <aws/ec2/model/ModifyVpnTunnelOptionsResponse.h>
384 #include <aws/ec2/model/MonitorInstancesResponse.h>
385 #include <aws/ec2/model/MoveAddressToVpcResponse.h>
386 #include <aws/ec2/model/ProvisionByoipCidrResponse.h>
387 #include <aws/ec2/model/PurchaseHostReservationResponse.h>
388 #include <aws/ec2/model/PurchaseReservedInstancesOfferingResponse.h>
389 #include <aws/ec2/model/PurchaseScheduledInstancesResponse.h>
390 #include <aws/ec2/model/RegisterImageResponse.h>
391 #include <aws/ec2/model/RegisterInstanceEventNotificationAttributesResponse.h>
392 #include <aws/ec2/model/RegisterTransitGatewayMulticastGroupMembersResponse.h>
393 #include <aws/ec2/model/RegisterTransitGatewayMulticastGroupSourcesResponse.h>
394 #include <aws/ec2/model/RejectTransitGatewayMulticastDomainAssociationsResponse.h>
395 #include <aws/ec2/model/RejectTransitGatewayPeeringAttachmentResponse.h>
396 #include <aws/ec2/model/RejectTransitGatewayVpcAttachmentResponse.h>
397 #include <aws/ec2/model/RejectVpcEndpointConnectionsResponse.h>
398 #include <aws/ec2/model/RejectVpcPeeringConnectionResponse.h>
399 #include <aws/ec2/model/ReleaseHostsResponse.h>
400 #include <aws/ec2/model/ReplaceIamInstanceProfileAssociationResponse.h>
401 #include <aws/ec2/model/ReplaceNetworkAclAssociationResponse.h>
402 #include <aws/ec2/model/ReplaceRouteTableAssociationResponse.h>
403 #include <aws/ec2/model/ReplaceTransitGatewayRouteResponse.h>
404 #include <aws/ec2/model/RequestSpotFleetResponse.h>
405 #include <aws/ec2/model/RequestSpotInstancesResponse.h>
406 #include <aws/ec2/model/ResetAddressAttributeResponse.h>
407 #include <aws/ec2/model/ResetEbsDefaultKmsKeyIdResponse.h>
408 #include <aws/ec2/model/ResetFpgaImageAttributeResponse.h>
409 #include <aws/ec2/model/RestoreAddressToClassicResponse.h>
410 #include <aws/ec2/model/RestoreManagedPrefixListVersionResponse.h>
411 #include <aws/ec2/model/RevokeClientVpnIngressResponse.h>
412 #include <aws/ec2/model/RevokeSecurityGroupEgressResponse.h>
413 #include <aws/ec2/model/RevokeSecurityGroupIngressResponse.h>
414 #include <aws/ec2/model/RunInstancesResponse.h>
415 #include <aws/ec2/model/RunScheduledInstancesResponse.h>
416 #include <aws/ec2/model/SearchLocalGatewayRoutesResponse.h>
417 #include <aws/ec2/model/SearchTransitGatewayMulticastGroupsResponse.h>
418 #include <aws/ec2/model/SearchTransitGatewayRoutesResponse.h>
419 #include <aws/ec2/model/StartInstancesResponse.h>
420 #include <aws/ec2/model/StartNetworkInsightsAnalysisResponse.h>
421 #include <aws/ec2/model/StartVpcEndpointServicePrivateDnsVerificationResponse.h>
422 #include <aws/ec2/model/StopInstancesResponse.h>
423 #include <aws/ec2/model/TerminateClientVpnConnectionsResponse.h>
424 #include <aws/ec2/model/TerminateInstancesResponse.h>
425 #include <aws/ec2/model/UnassignIpv6AddressesResponse.h>
426 #include <aws/ec2/model/UnmonitorInstancesResponse.h>
427 #include <aws/ec2/model/UpdateSecurityGroupRuleDescriptionsEgressResponse.h>
428 #include <aws/ec2/model/UpdateSecurityGroupRuleDescriptionsIngressResponse.h>
429 #include <aws/ec2/model/WithdrawByoipCidrResponse.h>
430 #include <aws/core/NoResult.h>
431 #include <aws/core/client/AsyncCallerContext.h>
432 #include <aws/core/http/HttpTypes.h>
433 #include <future>
434 #include <functional>
435 
436 namespace Aws
437 {
438 
439 namespace Http
440 {
441   class HttpClient;
442   class HttpClientFactory;
443 } // namespace Http
444 
445 namespace Utils
446 {
447   template< typename R, typename E> class Outcome;
448 
449 namespace Threading
450 {
451   class Executor;
452 } // namespace Threading
453 
454 namespace Xml
455 {
456   class XmlDocument;
457 } // namespace Xml
458 } // namespace Utils
459 
460 namespace Auth
461 {
462   class AWSCredentials;
463   class AWSCredentialsProvider;
464 } // namespace Auth
465 
466 namespace Client
467 {
468   class RetryStrategy;
469 } // namespace Client
470 
471 namespace EC2
472 {
473 
474 namespace Model
475 {
476         class AcceptReservedInstancesExchangeQuoteRequest;
477         class AcceptTransitGatewayMulticastDomainAssociationsRequest;
478         class AcceptTransitGatewayPeeringAttachmentRequest;
479         class AcceptTransitGatewayVpcAttachmentRequest;
480         class AcceptVpcEndpointConnectionsRequest;
481         class AcceptVpcPeeringConnectionRequest;
482         class AdvertiseByoipCidrRequest;
483         class AllocateAddressRequest;
484         class AllocateHostsRequest;
485         class ApplySecurityGroupsToClientVpnTargetNetworkRequest;
486         class AssignIpv6AddressesRequest;
487         class AssignPrivateIpAddressesRequest;
488         class AssociateAddressRequest;
489         class AssociateClientVpnTargetNetworkRequest;
490         class AssociateDhcpOptionsRequest;
491         class AssociateEnclaveCertificateIamRoleRequest;
492         class AssociateIamInstanceProfileRequest;
493         class AssociateInstanceEventWindowRequest;
494         class AssociateRouteTableRequest;
495         class AssociateSubnetCidrBlockRequest;
496         class AssociateTransitGatewayMulticastDomainRequest;
497         class AssociateTransitGatewayRouteTableRequest;
498         class AssociateTrunkInterfaceRequest;
499         class AssociateVpcCidrBlockRequest;
500         class AttachClassicLinkVpcRequest;
501         class AttachInternetGatewayRequest;
502         class AttachNetworkInterfaceRequest;
503         class AttachVolumeRequest;
504         class AttachVpnGatewayRequest;
505         class AuthorizeClientVpnIngressRequest;
506         class AuthorizeSecurityGroupEgressRequest;
507         class AuthorizeSecurityGroupIngressRequest;
508         class BundleInstanceRequest;
509         class CancelBundleTaskRequest;
510         class CancelCapacityReservationRequest;
511         class CancelCapacityReservationFleetsRequest;
512         class CancelConversionTaskRequest;
513         class CancelExportTaskRequest;
514         class CancelImportTaskRequest;
515         class CancelReservedInstancesListingRequest;
516         class CancelSpotFleetRequestsRequest;
517         class CancelSpotInstanceRequestsRequest;
518         class ConfirmProductInstanceRequest;
519         class CopyFpgaImageRequest;
520         class CopyImageRequest;
521         class CopySnapshotRequest;
522         class CreateCapacityReservationRequest;
523         class CreateCapacityReservationFleetRequest;
524         class CreateCarrierGatewayRequest;
525         class CreateClientVpnEndpointRequest;
526         class CreateClientVpnRouteRequest;
527         class CreateCustomerGatewayRequest;
528         class CreateDefaultSubnetRequest;
529         class CreateDefaultVpcRequest;
530         class CreateDhcpOptionsRequest;
531         class CreateEgressOnlyInternetGatewayRequest;
532         class CreateFleetRequest;
533         class CreateFlowLogsRequest;
534         class CreateFpgaImageRequest;
535         class CreateImageRequest;
536         class CreateInstanceEventWindowRequest;
537         class CreateInstanceExportTaskRequest;
538         class CreateInternetGatewayRequest;
539         class CreateKeyPairRequest;
540         class CreateLaunchTemplateRequest;
541         class CreateLaunchTemplateVersionRequest;
542         class CreateLocalGatewayRouteRequest;
543         class CreateLocalGatewayRouteTableVpcAssociationRequest;
544         class CreateManagedPrefixListRequest;
545         class CreateNatGatewayRequest;
546         class CreateNetworkAclRequest;
547         class CreateNetworkAclEntryRequest;
548         class CreateNetworkInsightsPathRequest;
549         class CreateNetworkInterfaceRequest;
550         class CreateNetworkInterfacePermissionRequest;
551         class CreatePlacementGroupRequest;
552         class CreateReplaceRootVolumeTaskRequest;
553         class CreateReservedInstancesListingRequest;
554         class CreateRestoreImageTaskRequest;
555         class CreateRouteRequest;
556         class CreateRouteTableRequest;
557         class CreateSecurityGroupRequest;
558         class CreateSnapshotRequest;
559         class CreateSnapshotsRequest;
560         class CreateSpotDatafeedSubscriptionRequest;
561         class CreateStoreImageTaskRequest;
562         class CreateSubnetRequest;
563         class CreateSubnetCidrReservationRequest;
564         class CreateTagsRequest;
565         class CreateTrafficMirrorFilterRequest;
566         class CreateTrafficMirrorFilterRuleRequest;
567         class CreateTrafficMirrorSessionRequest;
568         class CreateTrafficMirrorTargetRequest;
569         class CreateTransitGatewayRequest;
570         class CreateTransitGatewayConnectRequest;
571         class CreateTransitGatewayConnectPeerRequest;
572         class CreateTransitGatewayMulticastDomainRequest;
573         class CreateTransitGatewayPeeringAttachmentRequest;
574         class CreateTransitGatewayPrefixListReferenceRequest;
575         class CreateTransitGatewayRouteRequest;
576         class CreateTransitGatewayRouteTableRequest;
577         class CreateTransitGatewayVpcAttachmentRequest;
578         class CreateVolumeRequest;
579         class CreateVpcRequest;
580         class CreateVpcEndpointRequest;
581         class CreateVpcEndpointConnectionNotificationRequest;
582         class CreateVpcEndpointServiceConfigurationRequest;
583         class CreateVpcPeeringConnectionRequest;
584         class CreateVpnConnectionRequest;
585         class CreateVpnConnectionRouteRequest;
586         class CreateVpnGatewayRequest;
587         class DeleteCarrierGatewayRequest;
588         class DeleteClientVpnEndpointRequest;
589         class DeleteClientVpnRouteRequest;
590         class DeleteCustomerGatewayRequest;
591         class DeleteDhcpOptionsRequest;
592         class DeleteEgressOnlyInternetGatewayRequest;
593         class DeleteFleetsRequest;
594         class DeleteFlowLogsRequest;
595         class DeleteFpgaImageRequest;
596         class DeleteInstanceEventWindowRequest;
597         class DeleteInternetGatewayRequest;
598         class DeleteKeyPairRequest;
599         class DeleteLaunchTemplateRequest;
600         class DeleteLaunchTemplateVersionsRequest;
601         class DeleteLocalGatewayRouteRequest;
602         class DeleteLocalGatewayRouteTableVpcAssociationRequest;
603         class DeleteManagedPrefixListRequest;
604         class DeleteNatGatewayRequest;
605         class DeleteNetworkAclRequest;
606         class DeleteNetworkAclEntryRequest;
607         class DeleteNetworkInsightsAnalysisRequest;
608         class DeleteNetworkInsightsPathRequest;
609         class DeleteNetworkInterfaceRequest;
610         class DeleteNetworkInterfacePermissionRequest;
611         class DeletePlacementGroupRequest;
612         class DeleteQueuedReservedInstancesRequest;
613         class DeleteRouteRequest;
614         class DeleteRouteTableRequest;
615         class DeleteSecurityGroupRequest;
616         class DeleteSnapshotRequest;
617         class DeleteSpotDatafeedSubscriptionRequest;
618         class DeleteSubnetRequest;
619         class DeleteSubnetCidrReservationRequest;
620         class DeleteTagsRequest;
621         class DeleteTrafficMirrorFilterRequest;
622         class DeleteTrafficMirrorFilterRuleRequest;
623         class DeleteTrafficMirrorSessionRequest;
624         class DeleteTrafficMirrorTargetRequest;
625         class DeleteTransitGatewayRequest;
626         class DeleteTransitGatewayConnectRequest;
627         class DeleteTransitGatewayConnectPeerRequest;
628         class DeleteTransitGatewayMulticastDomainRequest;
629         class DeleteTransitGatewayPeeringAttachmentRequest;
630         class DeleteTransitGatewayPrefixListReferenceRequest;
631         class DeleteTransitGatewayRouteRequest;
632         class DeleteTransitGatewayRouteTableRequest;
633         class DeleteTransitGatewayVpcAttachmentRequest;
634         class DeleteVolumeRequest;
635         class DeleteVpcRequest;
636         class DeleteVpcEndpointConnectionNotificationsRequest;
637         class DeleteVpcEndpointServiceConfigurationsRequest;
638         class DeleteVpcEndpointsRequest;
639         class DeleteVpcPeeringConnectionRequest;
640         class DeleteVpnConnectionRequest;
641         class DeleteVpnConnectionRouteRequest;
642         class DeleteVpnGatewayRequest;
643         class DeprovisionByoipCidrRequest;
644         class DeregisterImageRequest;
645         class DeregisterInstanceEventNotificationAttributesRequest;
646         class DeregisterTransitGatewayMulticastGroupMembersRequest;
647         class DeregisterTransitGatewayMulticastGroupSourcesRequest;
648         class DescribeAccountAttributesRequest;
649         class DescribeAddressesRequest;
650         class DescribeAddressesAttributeRequest;
651         class DescribeAggregateIdFormatRequest;
652         class DescribeAvailabilityZonesRequest;
653         class DescribeBundleTasksRequest;
654         class DescribeByoipCidrsRequest;
655         class DescribeCapacityReservationFleetsRequest;
656         class DescribeCapacityReservationsRequest;
657         class DescribeCarrierGatewaysRequest;
658         class DescribeClassicLinkInstancesRequest;
659         class DescribeClientVpnAuthorizationRulesRequest;
660         class DescribeClientVpnConnectionsRequest;
661         class DescribeClientVpnEndpointsRequest;
662         class DescribeClientVpnRoutesRequest;
663         class DescribeClientVpnTargetNetworksRequest;
664         class DescribeCoipPoolsRequest;
665         class DescribeConversionTasksRequest;
666         class DescribeCustomerGatewaysRequest;
667         class DescribeDhcpOptionsRequest;
668         class DescribeEgressOnlyInternetGatewaysRequest;
669         class DescribeElasticGpusRequest;
670         class DescribeExportImageTasksRequest;
671         class DescribeExportTasksRequest;
672         class DescribeFastSnapshotRestoresRequest;
673         class DescribeFleetHistoryRequest;
674         class DescribeFleetInstancesRequest;
675         class DescribeFleetsRequest;
676         class DescribeFlowLogsRequest;
677         class DescribeFpgaImageAttributeRequest;
678         class DescribeFpgaImagesRequest;
679         class DescribeHostReservationOfferingsRequest;
680         class DescribeHostReservationsRequest;
681         class DescribeHostsRequest;
682         class DescribeIamInstanceProfileAssociationsRequest;
683         class DescribeIdFormatRequest;
684         class DescribeIdentityIdFormatRequest;
685         class DescribeImageAttributeRequest;
686         class DescribeImagesRequest;
687         class DescribeImportImageTasksRequest;
688         class DescribeImportSnapshotTasksRequest;
689         class DescribeInstanceAttributeRequest;
690         class DescribeInstanceCreditSpecificationsRequest;
691         class DescribeInstanceEventNotificationAttributesRequest;
692         class DescribeInstanceEventWindowsRequest;
693         class DescribeInstanceStatusRequest;
694         class DescribeInstanceTypeOfferingsRequest;
695         class DescribeInstanceTypesRequest;
696         class DescribeInstancesRequest;
697         class DescribeInternetGatewaysRequest;
698         class DescribeIpv6PoolsRequest;
699         class DescribeKeyPairsRequest;
700         class DescribeLaunchTemplateVersionsRequest;
701         class DescribeLaunchTemplatesRequest;
702         class DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsRequest;
703         class DescribeLocalGatewayRouteTableVpcAssociationsRequest;
704         class DescribeLocalGatewayRouteTablesRequest;
705         class DescribeLocalGatewayVirtualInterfaceGroupsRequest;
706         class DescribeLocalGatewayVirtualInterfacesRequest;
707         class DescribeLocalGatewaysRequest;
708         class DescribeManagedPrefixListsRequest;
709         class DescribeMovingAddressesRequest;
710         class DescribeNatGatewaysRequest;
711         class DescribeNetworkAclsRequest;
712         class DescribeNetworkInsightsAnalysesRequest;
713         class DescribeNetworkInsightsPathsRequest;
714         class DescribeNetworkInterfaceAttributeRequest;
715         class DescribeNetworkInterfacePermissionsRequest;
716         class DescribeNetworkInterfacesRequest;
717         class DescribePlacementGroupsRequest;
718         class DescribePrefixListsRequest;
719         class DescribePrincipalIdFormatRequest;
720         class DescribePublicIpv4PoolsRequest;
721         class DescribeRegionsRequest;
722         class DescribeReplaceRootVolumeTasksRequest;
723         class DescribeReservedInstancesRequest;
724         class DescribeReservedInstancesListingsRequest;
725         class DescribeReservedInstancesModificationsRequest;
726         class DescribeReservedInstancesOfferingsRequest;
727         class DescribeRouteTablesRequest;
728         class DescribeScheduledInstanceAvailabilityRequest;
729         class DescribeScheduledInstancesRequest;
730         class DescribeSecurityGroupReferencesRequest;
731         class DescribeSecurityGroupRulesRequest;
732         class DescribeSecurityGroupsRequest;
733         class DescribeSnapshotAttributeRequest;
734         class DescribeSnapshotsRequest;
735         class DescribeSpotDatafeedSubscriptionRequest;
736         class DescribeSpotFleetInstancesRequest;
737         class DescribeSpotFleetRequestHistoryRequest;
738         class DescribeSpotFleetRequestsRequest;
739         class DescribeSpotInstanceRequestsRequest;
740         class DescribeSpotPriceHistoryRequest;
741         class DescribeStaleSecurityGroupsRequest;
742         class DescribeStoreImageTasksRequest;
743         class DescribeSubnetsRequest;
744         class DescribeTagsRequest;
745         class DescribeTrafficMirrorFiltersRequest;
746         class DescribeTrafficMirrorSessionsRequest;
747         class DescribeTrafficMirrorTargetsRequest;
748         class DescribeTransitGatewayAttachmentsRequest;
749         class DescribeTransitGatewayConnectPeersRequest;
750         class DescribeTransitGatewayConnectsRequest;
751         class DescribeTransitGatewayMulticastDomainsRequest;
752         class DescribeTransitGatewayPeeringAttachmentsRequest;
753         class DescribeTransitGatewayRouteTablesRequest;
754         class DescribeTransitGatewayVpcAttachmentsRequest;
755         class DescribeTransitGatewaysRequest;
756         class DescribeTrunkInterfaceAssociationsRequest;
757         class DescribeVolumeAttributeRequest;
758         class DescribeVolumeStatusRequest;
759         class DescribeVolumesRequest;
760         class DescribeVolumesModificationsRequest;
761         class DescribeVpcAttributeRequest;
762         class DescribeVpcClassicLinkRequest;
763         class DescribeVpcClassicLinkDnsSupportRequest;
764         class DescribeVpcEndpointConnectionNotificationsRequest;
765         class DescribeVpcEndpointConnectionsRequest;
766         class DescribeVpcEndpointServiceConfigurationsRequest;
767         class DescribeVpcEndpointServicePermissionsRequest;
768         class DescribeVpcEndpointServicesRequest;
769         class DescribeVpcEndpointsRequest;
770         class DescribeVpcPeeringConnectionsRequest;
771         class DescribeVpcsRequest;
772         class DescribeVpnConnectionsRequest;
773         class DescribeVpnGatewaysRequest;
774         class DetachClassicLinkVpcRequest;
775         class DetachInternetGatewayRequest;
776         class DetachNetworkInterfaceRequest;
777         class DetachVolumeRequest;
778         class DetachVpnGatewayRequest;
779         class DisableEbsEncryptionByDefaultRequest;
780         class DisableFastSnapshotRestoresRequest;
781         class DisableImageDeprecationRequest;
782         class DisableSerialConsoleAccessRequest;
783         class DisableTransitGatewayRouteTablePropagationRequest;
784         class DisableVgwRoutePropagationRequest;
785         class DisableVpcClassicLinkRequest;
786         class DisableVpcClassicLinkDnsSupportRequest;
787         class DisassociateAddressRequest;
788         class DisassociateClientVpnTargetNetworkRequest;
789         class DisassociateEnclaveCertificateIamRoleRequest;
790         class DisassociateIamInstanceProfileRequest;
791         class DisassociateInstanceEventWindowRequest;
792         class DisassociateRouteTableRequest;
793         class DisassociateSubnetCidrBlockRequest;
794         class DisassociateTransitGatewayMulticastDomainRequest;
795         class DisassociateTransitGatewayRouteTableRequest;
796         class DisassociateTrunkInterfaceRequest;
797         class DisassociateVpcCidrBlockRequest;
798         class EnableEbsEncryptionByDefaultRequest;
799         class EnableFastSnapshotRestoresRequest;
800         class EnableImageDeprecationRequest;
801         class EnableSerialConsoleAccessRequest;
802         class EnableTransitGatewayRouteTablePropagationRequest;
803         class EnableVgwRoutePropagationRequest;
804         class EnableVolumeIORequest;
805         class EnableVpcClassicLinkRequest;
806         class EnableVpcClassicLinkDnsSupportRequest;
807         class ExportClientVpnClientCertificateRevocationListRequest;
808         class ExportClientVpnClientConfigurationRequest;
809         class ExportImageRequest;
810         class ExportTransitGatewayRoutesRequest;
811         class GetAssociatedEnclaveCertificateIamRolesRequest;
812         class GetAssociatedIpv6PoolCidrsRequest;
813         class GetCapacityReservationUsageRequest;
814         class GetCoipPoolUsageRequest;
815         class GetConsoleOutputRequest;
816         class GetConsoleScreenshotRequest;
817         class GetDefaultCreditSpecificationRequest;
818         class GetEbsDefaultKmsKeyIdRequest;
819         class GetEbsEncryptionByDefaultRequest;
820         class GetFlowLogsIntegrationTemplateRequest;
821         class GetGroupsForCapacityReservationRequest;
822         class GetHostReservationPurchasePreviewRequest;
823         class GetLaunchTemplateDataRequest;
824         class GetManagedPrefixListAssociationsRequest;
825         class GetManagedPrefixListEntriesRequest;
826         class GetPasswordDataRequest;
827         class GetReservedInstancesExchangeQuoteRequest;
828         class GetSerialConsoleAccessStatusRequest;
829         class GetSubnetCidrReservationsRequest;
830         class GetTransitGatewayAttachmentPropagationsRequest;
831         class GetTransitGatewayMulticastDomainAssociationsRequest;
832         class GetTransitGatewayPrefixListReferencesRequest;
833         class GetTransitGatewayRouteTableAssociationsRequest;
834         class GetTransitGatewayRouteTablePropagationsRequest;
835         class GetVpnConnectionDeviceSampleConfigurationRequest;
836         class GetVpnConnectionDeviceTypesRequest;
837         class ImportClientVpnClientCertificateRevocationListRequest;
838         class ImportImageRequest;
839         class ImportInstanceRequest;
840         class ImportKeyPairRequest;
841         class ImportSnapshotRequest;
842         class ImportVolumeRequest;
843         class ModifyAddressAttributeRequest;
844         class ModifyAvailabilityZoneGroupRequest;
845         class ModifyCapacityReservationRequest;
846         class ModifyCapacityReservationFleetRequest;
847         class ModifyClientVpnEndpointRequest;
848         class ModifyDefaultCreditSpecificationRequest;
849         class ModifyEbsDefaultKmsKeyIdRequest;
850         class ModifyFleetRequest;
851         class ModifyFpgaImageAttributeRequest;
852         class ModifyHostsRequest;
853         class ModifyIdFormatRequest;
854         class ModifyIdentityIdFormatRequest;
855         class ModifyImageAttributeRequest;
856         class ModifyInstanceAttributeRequest;
857         class ModifyInstanceCapacityReservationAttributesRequest;
858         class ModifyInstanceCreditSpecificationRequest;
859         class ModifyInstanceEventStartTimeRequest;
860         class ModifyInstanceEventWindowRequest;
861         class ModifyInstanceMetadataOptionsRequest;
862         class ModifyInstancePlacementRequest;
863         class ModifyLaunchTemplateRequest;
864         class ModifyManagedPrefixListRequest;
865         class ModifyNetworkInterfaceAttributeRequest;
866         class ModifyReservedInstancesRequest;
867         class ModifySecurityGroupRulesRequest;
868         class ModifySnapshotAttributeRequest;
869         class ModifySpotFleetRequestRequest;
870         class ModifySubnetAttributeRequest;
871         class ModifyTrafficMirrorFilterNetworkServicesRequest;
872         class ModifyTrafficMirrorFilterRuleRequest;
873         class ModifyTrafficMirrorSessionRequest;
874         class ModifyTransitGatewayRequest;
875         class ModifyTransitGatewayPrefixListReferenceRequest;
876         class ModifyTransitGatewayVpcAttachmentRequest;
877         class ModifyVolumeRequest;
878         class ModifyVolumeAttributeRequest;
879         class ModifyVpcAttributeRequest;
880         class ModifyVpcEndpointRequest;
881         class ModifyVpcEndpointConnectionNotificationRequest;
882         class ModifyVpcEndpointServiceConfigurationRequest;
883         class ModifyVpcEndpointServicePermissionsRequest;
884         class ModifyVpcPeeringConnectionOptionsRequest;
885         class ModifyVpcTenancyRequest;
886         class ModifyVpnConnectionRequest;
887         class ModifyVpnConnectionOptionsRequest;
888         class ModifyVpnTunnelCertificateRequest;
889         class ModifyVpnTunnelOptionsRequest;
890         class MonitorInstancesRequest;
891         class MoveAddressToVpcRequest;
892         class ProvisionByoipCidrRequest;
893         class PurchaseHostReservationRequest;
894         class PurchaseReservedInstancesOfferingRequest;
895         class PurchaseScheduledInstancesRequest;
896         class RebootInstancesRequest;
897         class RegisterImageRequest;
898         class RegisterInstanceEventNotificationAttributesRequest;
899         class RegisterTransitGatewayMulticastGroupMembersRequest;
900         class RegisterTransitGatewayMulticastGroupSourcesRequest;
901         class RejectTransitGatewayMulticastDomainAssociationsRequest;
902         class RejectTransitGatewayPeeringAttachmentRequest;
903         class RejectTransitGatewayVpcAttachmentRequest;
904         class RejectVpcEndpointConnectionsRequest;
905         class RejectVpcPeeringConnectionRequest;
906         class ReleaseAddressRequest;
907         class ReleaseHostsRequest;
908         class ReplaceIamInstanceProfileAssociationRequest;
909         class ReplaceNetworkAclAssociationRequest;
910         class ReplaceNetworkAclEntryRequest;
911         class ReplaceRouteRequest;
912         class ReplaceRouteTableAssociationRequest;
913         class ReplaceTransitGatewayRouteRequest;
914         class ReportInstanceStatusRequest;
915         class RequestSpotFleetRequest;
916         class RequestSpotInstancesRequest;
917         class ResetAddressAttributeRequest;
918         class ResetEbsDefaultKmsKeyIdRequest;
919         class ResetFpgaImageAttributeRequest;
920         class ResetImageAttributeRequest;
921         class ResetInstanceAttributeRequest;
922         class ResetNetworkInterfaceAttributeRequest;
923         class ResetSnapshotAttributeRequest;
924         class RestoreAddressToClassicRequest;
925         class RestoreManagedPrefixListVersionRequest;
926         class RevokeClientVpnIngressRequest;
927         class RevokeSecurityGroupEgressRequest;
928         class RevokeSecurityGroupIngressRequest;
929         class RunInstancesRequest;
930         class RunScheduledInstancesRequest;
931         class SearchLocalGatewayRoutesRequest;
932         class SearchTransitGatewayMulticastGroupsRequest;
933         class SearchTransitGatewayRoutesRequest;
934         class SendDiagnosticInterruptRequest;
935         class StartInstancesRequest;
936         class StartNetworkInsightsAnalysisRequest;
937         class StartVpcEndpointServicePrivateDnsVerificationRequest;
938         class StopInstancesRequest;
939         class TerminateClientVpnConnectionsRequest;
940         class TerminateInstancesRequest;
941         class UnassignIpv6AddressesRequest;
942         class UnassignPrivateIpAddressesRequest;
943         class UnmonitorInstancesRequest;
944         class UpdateSecurityGroupRuleDescriptionsEgressRequest;
945         class UpdateSecurityGroupRuleDescriptionsIngressRequest;
946         class WithdrawByoipCidrRequest;
947 
948         typedef Aws::Utils::Outcome<AcceptReservedInstancesExchangeQuoteResponse, EC2Error> AcceptReservedInstancesExchangeQuoteOutcome;
949         typedef Aws::Utils::Outcome<AcceptTransitGatewayMulticastDomainAssociationsResponse, EC2Error> AcceptTransitGatewayMulticastDomainAssociationsOutcome;
950         typedef Aws::Utils::Outcome<AcceptTransitGatewayPeeringAttachmentResponse, EC2Error> AcceptTransitGatewayPeeringAttachmentOutcome;
951         typedef Aws::Utils::Outcome<AcceptTransitGatewayVpcAttachmentResponse, EC2Error> AcceptTransitGatewayVpcAttachmentOutcome;
952         typedef Aws::Utils::Outcome<AcceptVpcEndpointConnectionsResponse, EC2Error> AcceptVpcEndpointConnectionsOutcome;
953         typedef Aws::Utils::Outcome<AcceptVpcPeeringConnectionResponse, EC2Error> AcceptVpcPeeringConnectionOutcome;
954         typedef Aws::Utils::Outcome<AdvertiseByoipCidrResponse, EC2Error> AdvertiseByoipCidrOutcome;
955         typedef Aws::Utils::Outcome<AllocateAddressResponse, EC2Error> AllocateAddressOutcome;
956         typedef Aws::Utils::Outcome<AllocateHostsResponse, EC2Error> AllocateHostsOutcome;
957         typedef Aws::Utils::Outcome<ApplySecurityGroupsToClientVpnTargetNetworkResponse, EC2Error> ApplySecurityGroupsToClientVpnTargetNetworkOutcome;
958         typedef Aws::Utils::Outcome<AssignIpv6AddressesResponse, EC2Error> AssignIpv6AddressesOutcome;
959         typedef Aws::Utils::Outcome<AssignPrivateIpAddressesResponse, EC2Error> AssignPrivateIpAddressesOutcome;
960         typedef Aws::Utils::Outcome<AssociateAddressResponse, EC2Error> AssociateAddressOutcome;
961         typedef Aws::Utils::Outcome<AssociateClientVpnTargetNetworkResponse, EC2Error> AssociateClientVpnTargetNetworkOutcome;
962         typedef Aws::Utils::Outcome<Aws::NoResult, EC2Error> AssociateDhcpOptionsOutcome;
963         typedef Aws::Utils::Outcome<AssociateEnclaveCertificateIamRoleResponse, EC2Error> AssociateEnclaveCertificateIamRoleOutcome;
964         typedef Aws::Utils::Outcome<AssociateIamInstanceProfileResponse, EC2Error> AssociateIamInstanceProfileOutcome;
965         typedef Aws::Utils::Outcome<AssociateInstanceEventWindowResponse, EC2Error> AssociateInstanceEventWindowOutcome;
966         typedef Aws::Utils::Outcome<AssociateRouteTableResponse, EC2Error> AssociateRouteTableOutcome;
967         typedef Aws::Utils::Outcome<AssociateSubnetCidrBlockResponse, EC2Error> AssociateSubnetCidrBlockOutcome;
968         typedef Aws::Utils::Outcome<AssociateTransitGatewayMulticastDomainResponse, EC2Error> AssociateTransitGatewayMulticastDomainOutcome;
969         typedef Aws::Utils::Outcome<AssociateTransitGatewayRouteTableResponse, EC2Error> AssociateTransitGatewayRouteTableOutcome;
970         typedef Aws::Utils::Outcome<AssociateTrunkInterfaceResponse, EC2Error> AssociateTrunkInterfaceOutcome;
971         typedef Aws::Utils::Outcome<AssociateVpcCidrBlockResponse, EC2Error> AssociateVpcCidrBlockOutcome;
972         typedef Aws::Utils::Outcome<AttachClassicLinkVpcResponse, EC2Error> AttachClassicLinkVpcOutcome;
973         typedef Aws::Utils::Outcome<Aws::NoResult, EC2Error> AttachInternetGatewayOutcome;
974         typedef Aws::Utils::Outcome<AttachNetworkInterfaceResponse, EC2Error> AttachNetworkInterfaceOutcome;
975         typedef Aws::Utils::Outcome<AttachVolumeResponse, EC2Error> AttachVolumeOutcome;
976         typedef Aws::Utils::Outcome<AttachVpnGatewayResponse, EC2Error> AttachVpnGatewayOutcome;
977         typedef Aws::Utils::Outcome<AuthorizeClientVpnIngressResponse, EC2Error> AuthorizeClientVpnIngressOutcome;
978         typedef Aws::Utils::Outcome<AuthorizeSecurityGroupEgressResponse, EC2Error> AuthorizeSecurityGroupEgressOutcome;
979         typedef Aws::Utils::Outcome<AuthorizeSecurityGroupIngressResponse, EC2Error> AuthorizeSecurityGroupIngressOutcome;
980         typedef Aws::Utils::Outcome<BundleInstanceResponse, EC2Error> BundleInstanceOutcome;
981         typedef Aws::Utils::Outcome<CancelBundleTaskResponse, EC2Error> CancelBundleTaskOutcome;
982         typedef Aws::Utils::Outcome<CancelCapacityReservationResponse, EC2Error> CancelCapacityReservationOutcome;
983         typedef Aws::Utils::Outcome<CancelCapacityReservationFleetsResponse, EC2Error> CancelCapacityReservationFleetsOutcome;
984         typedef Aws::Utils::Outcome<Aws::NoResult, EC2Error> CancelConversionTaskOutcome;
985         typedef Aws::Utils::Outcome<Aws::NoResult, EC2Error> CancelExportTaskOutcome;
986         typedef Aws::Utils::Outcome<CancelImportTaskResponse, EC2Error> CancelImportTaskOutcome;
987         typedef Aws::Utils::Outcome<CancelReservedInstancesListingResponse, EC2Error> CancelReservedInstancesListingOutcome;
988         typedef Aws::Utils::Outcome<CancelSpotFleetRequestsResponse, EC2Error> CancelSpotFleetRequestsOutcome;
989         typedef Aws::Utils::Outcome<CancelSpotInstanceRequestsResponse, EC2Error> CancelSpotInstanceRequestsOutcome;
990         typedef Aws::Utils::Outcome<ConfirmProductInstanceResponse, EC2Error> ConfirmProductInstanceOutcome;
991         typedef Aws::Utils::Outcome<CopyFpgaImageResponse, EC2Error> CopyFpgaImageOutcome;
992         typedef Aws::Utils::Outcome<CopyImageResponse, EC2Error> CopyImageOutcome;
993         typedef Aws::Utils::Outcome<CopySnapshotResponse, EC2Error> CopySnapshotOutcome;
994         typedef Aws::Utils::Outcome<CreateCapacityReservationResponse, EC2Error> CreateCapacityReservationOutcome;
995         typedef Aws::Utils::Outcome<CreateCapacityReservationFleetResponse, EC2Error> CreateCapacityReservationFleetOutcome;
996         typedef Aws::Utils::Outcome<CreateCarrierGatewayResponse, EC2Error> CreateCarrierGatewayOutcome;
997         typedef Aws::Utils::Outcome<CreateClientVpnEndpointResponse, EC2Error> CreateClientVpnEndpointOutcome;
998         typedef Aws::Utils::Outcome<CreateClientVpnRouteResponse, EC2Error> CreateClientVpnRouteOutcome;
999         typedef Aws::Utils::Outcome<CreateCustomerGatewayResponse, EC2Error> CreateCustomerGatewayOutcome;
1000         typedef Aws::Utils::Outcome<CreateDefaultSubnetResponse, EC2Error> CreateDefaultSubnetOutcome;
1001         typedef Aws::Utils::Outcome<CreateDefaultVpcResponse, EC2Error> CreateDefaultVpcOutcome;
1002         typedef Aws::Utils::Outcome<CreateDhcpOptionsResponse, EC2Error> CreateDhcpOptionsOutcome;
1003         typedef Aws::Utils::Outcome<CreateEgressOnlyInternetGatewayResponse, EC2Error> CreateEgressOnlyInternetGatewayOutcome;
1004         typedef Aws::Utils::Outcome<CreateFleetResponse, EC2Error> CreateFleetOutcome;
1005         typedef Aws::Utils::Outcome<CreateFlowLogsResponse, EC2Error> CreateFlowLogsOutcome;
1006         typedef Aws::Utils::Outcome<CreateFpgaImageResponse, EC2Error> CreateFpgaImageOutcome;
1007         typedef Aws::Utils::Outcome<CreateImageResponse, EC2Error> CreateImageOutcome;
1008         typedef Aws::Utils::Outcome<CreateInstanceEventWindowResponse, EC2Error> CreateInstanceEventWindowOutcome;
1009         typedef Aws::Utils::Outcome<CreateInstanceExportTaskResponse, EC2Error> CreateInstanceExportTaskOutcome;
1010         typedef Aws::Utils::Outcome<CreateInternetGatewayResponse, EC2Error> CreateInternetGatewayOutcome;
1011         typedef Aws::Utils::Outcome<CreateKeyPairResponse, EC2Error> CreateKeyPairOutcome;
1012         typedef Aws::Utils::Outcome<CreateLaunchTemplateResponse, EC2Error> CreateLaunchTemplateOutcome;
1013         typedef Aws::Utils::Outcome<CreateLaunchTemplateVersionResponse, EC2Error> CreateLaunchTemplateVersionOutcome;
1014         typedef Aws::Utils::Outcome<CreateLocalGatewayRouteResponse, EC2Error> CreateLocalGatewayRouteOutcome;
1015         typedef Aws::Utils::Outcome<CreateLocalGatewayRouteTableVpcAssociationResponse, EC2Error> CreateLocalGatewayRouteTableVpcAssociationOutcome;
1016         typedef Aws::Utils::Outcome<CreateManagedPrefixListResponse, EC2Error> CreateManagedPrefixListOutcome;
1017         typedef Aws::Utils::Outcome<CreateNatGatewayResponse, EC2Error> CreateNatGatewayOutcome;
1018         typedef Aws::Utils::Outcome<CreateNetworkAclResponse, EC2Error> CreateNetworkAclOutcome;
1019         typedef Aws::Utils::Outcome<Aws::NoResult, EC2Error> CreateNetworkAclEntryOutcome;
1020         typedef Aws::Utils::Outcome<CreateNetworkInsightsPathResponse, EC2Error> CreateNetworkInsightsPathOutcome;
1021         typedef Aws::Utils::Outcome<CreateNetworkInterfaceResponse, EC2Error> CreateNetworkInterfaceOutcome;
1022         typedef Aws::Utils::Outcome<CreateNetworkInterfacePermissionResponse, EC2Error> CreateNetworkInterfacePermissionOutcome;
1023         typedef Aws::Utils::Outcome<CreatePlacementGroupResponse, EC2Error> CreatePlacementGroupOutcome;
1024         typedef Aws::Utils::Outcome<CreateReplaceRootVolumeTaskResponse, EC2Error> CreateReplaceRootVolumeTaskOutcome;
1025         typedef Aws::Utils::Outcome<CreateReservedInstancesListingResponse, EC2Error> CreateReservedInstancesListingOutcome;
1026         typedef Aws::Utils::Outcome<CreateRestoreImageTaskResponse, EC2Error> CreateRestoreImageTaskOutcome;
1027         typedef Aws::Utils::Outcome<CreateRouteResponse, EC2Error> CreateRouteOutcome;
1028         typedef Aws::Utils::Outcome<CreateRouteTableResponse, EC2Error> CreateRouteTableOutcome;
1029         typedef Aws::Utils::Outcome<CreateSecurityGroupResponse, EC2Error> CreateSecurityGroupOutcome;
1030         typedef Aws::Utils::Outcome<CreateSnapshotResponse, EC2Error> CreateSnapshotOutcome;
1031         typedef Aws::Utils::Outcome<CreateSnapshotsResponse, EC2Error> CreateSnapshotsOutcome;
1032         typedef Aws::Utils::Outcome<CreateSpotDatafeedSubscriptionResponse, EC2Error> CreateSpotDatafeedSubscriptionOutcome;
1033         typedef Aws::Utils::Outcome<CreateStoreImageTaskResponse, EC2Error> CreateStoreImageTaskOutcome;
1034         typedef Aws::Utils::Outcome<CreateSubnetResponse, EC2Error> CreateSubnetOutcome;
1035         typedef Aws::Utils::Outcome<CreateSubnetCidrReservationResponse, EC2Error> CreateSubnetCidrReservationOutcome;
1036         typedef Aws::Utils::Outcome<Aws::NoResult, EC2Error> CreateTagsOutcome;
1037         typedef Aws::Utils::Outcome<CreateTrafficMirrorFilterResponse, EC2Error> CreateTrafficMirrorFilterOutcome;
1038         typedef Aws::Utils::Outcome<CreateTrafficMirrorFilterRuleResponse, EC2Error> CreateTrafficMirrorFilterRuleOutcome;
1039         typedef Aws::Utils::Outcome<CreateTrafficMirrorSessionResponse, EC2Error> CreateTrafficMirrorSessionOutcome;
1040         typedef Aws::Utils::Outcome<CreateTrafficMirrorTargetResponse, EC2Error> CreateTrafficMirrorTargetOutcome;
1041         typedef Aws::Utils::Outcome<CreateTransitGatewayResponse, EC2Error> CreateTransitGatewayOutcome;
1042         typedef Aws::Utils::Outcome<CreateTransitGatewayConnectResponse, EC2Error> CreateTransitGatewayConnectOutcome;
1043         typedef Aws::Utils::Outcome<CreateTransitGatewayConnectPeerResponse, EC2Error> CreateTransitGatewayConnectPeerOutcome;
1044         typedef Aws::Utils::Outcome<CreateTransitGatewayMulticastDomainResponse, EC2Error> CreateTransitGatewayMulticastDomainOutcome;
1045         typedef Aws::Utils::Outcome<CreateTransitGatewayPeeringAttachmentResponse, EC2Error> CreateTransitGatewayPeeringAttachmentOutcome;
1046         typedef Aws::Utils::Outcome<CreateTransitGatewayPrefixListReferenceResponse, EC2Error> CreateTransitGatewayPrefixListReferenceOutcome;
1047         typedef Aws::Utils::Outcome<CreateTransitGatewayRouteResponse, EC2Error> CreateTransitGatewayRouteOutcome;
1048         typedef Aws::Utils::Outcome<CreateTransitGatewayRouteTableResponse, EC2Error> CreateTransitGatewayRouteTableOutcome;
1049         typedef Aws::Utils::Outcome<CreateTransitGatewayVpcAttachmentResponse, EC2Error> CreateTransitGatewayVpcAttachmentOutcome;
1050         typedef Aws::Utils::Outcome<CreateVolumeResponse, EC2Error> CreateVolumeOutcome;
1051         typedef Aws::Utils::Outcome<CreateVpcResponse, EC2Error> CreateVpcOutcome;
1052         typedef Aws::Utils::Outcome<CreateVpcEndpointResponse, EC2Error> CreateVpcEndpointOutcome;
1053         typedef Aws::Utils::Outcome<CreateVpcEndpointConnectionNotificationResponse, EC2Error> CreateVpcEndpointConnectionNotificationOutcome;
1054         typedef Aws::Utils::Outcome<CreateVpcEndpointServiceConfigurationResponse, EC2Error> CreateVpcEndpointServiceConfigurationOutcome;
1055         typedef Aws::Utils::Outcome<CreateVpcPeeringConnectionResponse, EC2Error> CreateVpcPeeringConnectionOutcome;
1056         typedef Aws::Utils::Outcome<CreateVpnConnectionResponse, EC2Error> CreateVpnConnectionOutcome;
1057         typedef Aws::Utils::Outcome<Aws::NoResult, EC2Error> CreateVpnConnectionRouteOutcome;
1058         typedef Aws::Utils::Outcome<CreateVpnGatewayResponse, EC2Error> CreateVpnGatewayOutcome;
1059         typedef Aws::Utils::Outcome<DeleteCarrierGatewayResponse, EC2Error> DeleteCarrierGatewayOutcome;
1060         typedef Aws::Utils::Outcome<DeleteClientVpnEndpointResponse, EC2Error> DeleteClientVpnEndpointOutcome;
1061         typedef Aws::Utils::Outcome<DeleteClientVpnRouteResponse, EC2Error> DeleteClientVpnRouteOutcome;
1062         typedef Aws::Utils::Outcome<Aws::NoResult, EC2Error> DeleteCustomerGatewayOutcome;
1063         typedef Aws::Utils::Outcome<Aws::NoResult, EC2Error> DeleteDhcpOptionsOutcome;
1064         typedef Aws::Utils::Outcome<DeleteEgressOnlyInternetGatewayResponse, EC2Error> DeleteEgressOnlyInternetGatewayOutcome;
1065         typedef Aws::Utils::Outcome<DeleteFleetsResponse, EC2Error> DeleteFleetsOutcome;
1066         typedef Aws::Utils::Outcome<DeleteFlowLogsResponse, EC2Error> DeleteFlowLogsOutcome;
1067         typedef Aws::Utils::Outcome<DeleteFpgaImageResponse, EC2Error> DeleteFpgaImageOutcome;
1068         typedef Aws::Utils::Outcome<DeleteInstanceEventWindowResponse, EC2Error> DeleteInstanceEventWindowOutcome;
1069         typedef Aws::Utils::Outcome<Aws::NoResult, EC2Error> DeleteInternetGatewayOutcome;
1070         typedef Aws::Utils::Outcome<Aws::NoResult, EC2Error> DeleteKeyPairOutcome;
1071         typedef Aws::Utils::Outcome<DeleteLaunchTemplateResponse, EC2Error> DeleteLaunchTemplateOutcome;
1072         typedef Aws::Utils::Outcome<DeleteLaunchTemplateVersionsResponse, EC2Error> DeleteLaunchTemplateVersionsOutcome;
1073         typedef Aws::Utils::Outcome<DeleteLocalGatewayRouteResponse, EC2Error> DeleteLocalGatewayRouteOutcome;
1074         typedef Aws::Utils::Outcome<DeleteLocalGatewayRouteTableVpcAssociationResponse, EC2Error> DeleteLocalGatewayRouteTableVpcAssociationOutcome;
1075         typedef Aws::Utils::Outcome<DeleteManagedPrefixListResponse, EC2Error> DeleteManagedPrefixListOutcome;
1076         typedef Aws::Utils::Outcome<DeleteNatGatewayResponse, EC2Error> DeleteNatGatewayOutcome;
1077         typedef Aws::Utils::Outcome<Aws::NoResult, EC2Error> DeleteNetworkAclOutcome;
1078         typedef Aws::Utils::Outcome<Aws::NoResult, EC2Error> DeleteNetworkAclEntryOutcome;
1079         typedef Aws::Utils::Outcome<DeleteNetworkInsightsAnalysisResponse, EC2Error> DeleteNetworkInsightsAnalysisOutcome;
1080         typedef Aws::Utils::Outcome<DeleteNetworkInsightsPathResponse, EC2Error> DeleteNetworkInsightsPathOutcome;
1081         typedef Aws::Utils::Outcome<Aws::NoResult, EC2Error> DeleteNetworkInterfaceOutcome;
1082         typedef Aws::Utils::Outcome<DeleteNetworkInterfacePermissionResponse, EC2Error> DeleteNetworkInterfacePermissionOutcome;
1083         typedef Aws::Utils::Outcome<Aws::NoResult, EC2Error> DeletePlacementGroupOutcome;
1084         typedef Aws::Utils::Outcome<DeleteQueuedReservedInstancesResponse, EC2Error> DeleteQueuedReservedInstancesOutcome;
1085         typedef Aws::Utils::Outcome<Aws::NoResult, EC2Error> DeleteRouteOutcome;
1086         typedef Aws::Utils::Outcome<Aws::NoResult, EC2Error> DeleteRouteTableOutcome;
1087         typedef Aws::Utils::Outcome<Aws::NoResult, EC2Error> DeleteSecurityGroupOutcome;
1088         typedef Aws::Utils::Outcome<Aws::NoResult, EC2Error> DeleteSnapshotOutcome;
1089         typedef Aws::Utils::Outcome<Aws::NoResult, EC2Error> DeleteSpotDatafeedSubscriptionOutcome;
1090         typedef Aws::Utils::Outcome<Aws::NoResult, EC2Error> DeleteSubnetOutcome;
1091         typedef Aws::Utils::Outcome<DeleteSubnetCidrReservationResponse, EC2Error> DeleteSubnetCidrReservationOutcome;
1092         typedef Aws::Utils::Outcome<Aws::NoResult, EC2Error> DeleteTagsOutcome;
1093         typedef Aws::Utils::Outcome<DeleteTrafficMirrorFilterResponse, EC2Error> DeleteTrafficMirrorFilterOutcome;
1094         typedef Aws::Utils::Outcome<DeleteTrafficMirrorFilterRuleResponse, EC2Error> DeleteTrafficMirrorFilterRuleOutcome;
1095         typedef Aws::Utils::Outcome<DeleteTrafficMirrorSessionResponse, EC2Error> DeleteTrafficMirrorSessionOutcome;
1096         typedef Aws::Utils::Outcome<DeleteTrafficMirrorTargetResponse, EC2Error> DeleteTrafficMirrorTargetOutcome;
1097         typedef Aws::Utils::Outcome<DeleteTransitGatewayResponse, EC2Error> DeleteTransitGatewayOutcome;
1098         typedef Aws::Utils::Outcome<DeleteTransitGatewayConnectResponse, EC2Error> DeleteTransitGatewayConnectOutcome;
1099         typedef Aws::Utils::Outcome<DeleteTransitGatewayConnectPeerResponse, EC2Error> DeleteTransitGatewayConnectPeerOutcome;
1100         typedef Aws::Utils::Outcome<DeleteTransitGatewayMulticastDomainResponse, EC2Error> DeleteTransitGatewayMulticastDomainOutcome;
1101         typedef Aws::Utils::Outcome<DeleteTransitGatewayPeeringAttachmentResponse, EC2Error> DeleteTransitGatewayPeeringAttachmentOutcome;
1102         typedef Aws::Utils::Outcome<DeleteTransitGatewayPrefixListReferenceResponse, EC2Error> DeleteTransitGatewayPrefixListReferenceOutcome;
1103         typedef Aws::Utils::Outcome<DeleteTransitGatewayRouteResponse, EC2Error> DeleteTransitGatewayRouteOutcome;
1104         typedef Aws::Utils::Outcome<DeleteTransitGatewayRouteTableResponse, EC2Error> DeleteTransitGatewayRouteTableOutcome;
1105         typedef Aws::Utils::Outcome<DeleteTransitGatewayVpcAttachmentResponse, EC2Error> DeleteTransitGatewayVpcAttachmentOutcome;
1106         typedef Aws::Utils::Outcome<Aws::NoResult, EC2Error> DeleteVolumeOutcome;
1107         typedef Aws::Utils::Outcome<Aws::NoResult, EC2Error> DeleteVpcOutcome;
1108         typedef Aws::Utils::Outcome<DeleteVpcEndpointConnectionNotificationsResponse, EC2Error> DeleteVpcEndpointConnectionNotificationsOutcome;
1109         typedef Aws::Utils::Outcome<DeleteVpcEndpointServiceConfigurationsResponse, EC2Error> DeleteVpcEndpointServiceConfigurationsOutcome;
1110         typedef Aws::Utils::Outcome<DeleteVpcEndpointsResponse, EC2Error> DeleteVpcEndpointsOutcome;
1111         typedef Aws::Utils::Outcome<DeleteVpcPeeringConnectionResponse, EC2Error> DeleteVpcPeeringConnectionOutcome;
1112         typedef Aws::Utils::Outcome<Aws::NoResult, EC2Error> DeleteVpnConnectionOutcome;
1113         typedef Aws::Utils::Outcome<Aws::NoResult, EC2Error> DeleteVpnConnectionRouteOutcome;
1114         typedef Aws::Utils::Outcome<Aws::NoResult, EC2Error> DeleteVpnGatewayOutcome;
1115         typedef Aws::Utils::Outcome<DeprovisionByoipCidrResponse, EC2Error> DeprovisionByoipCidrOutcome;
1116         typedef Aws::Utils::Outcome<Aws::NoResult, EC2Error> DeregisterImageOutcome;
1117         typedef Aws::Utils::Outcome<DeregisterInstanceEventNotificationAttributesResponse, EC2Error> DeregisterInstanceEventNotificationAttributesOutcome;
1118         typedef Aws::Utils::Outcome<DeregisterTransitGatewayMulticastGroupMembersResponse, EC2Error> DeregisterTransitGatewayMulticastGroupMembersOutcome;
1119         typedef Aws::Utils::Outcome<DeregisterTransitGatewayMulticastGroupSourcesResponse, EC2Error> DeregisterTransitGatewayMulticastGroupSourcesOutcome;
1120         typedef Aws::Utils::Outcome<DescribeAccountAttributesResponse, EC2Error> DescribeAccountAttributesOutcome;
1121         typedef Aws::Utils::Outcome<DescribeAddressesResponse, EC2Error> DescribeAddressesOutcome;
1122         typedef Aws::Utils::Outcome<DescribeAddressesAttributeResponse, EC2Error> DescribeAddressesAttributeOutcome;
1123         typedef Aws::Utils::Outcome<DescribeAggregateIdFormatResponse, EC2Error> DescribeAggregateIdFormatOutcome;
1124         typedef Aws::Utils::Outcome<DescribeAvailabilityZonesResponse, EC2Error> DescribeAvailabilityZonesOutcome;
1125         typedef Aws::Utils::Outcome<DescribeBundleTasksResponse, EC2Error> DescribeBundleTasksOutcome;
1126         typedef Aws::Utils::Outcome<DescribeByoipCidrsResponse, EC2Error> DescribeByoipCidrsOutcome;
1127         typedef Aws::Utils::Outcome<DescribeCapacityReservationFleetsResponse, EC2Error> DescribeCapacityReservationFleetsOutcome;
1128         typedef Aws::Utils::Outcome<DescribeCapacityReservationsResponse, EC2Error> DescribeCapacityReservationsOutcome;
1129         typedef Aws::Utils::Outcome<DescribeCarrierGatewaysResponse, EC2Error> DescribeCarrierGatewaysOutcome;
1130         typedef Aws::Utils::Outcome<DescribeClassicLinkInstancesResponse, EC2Error> DescribeClassicLinkInstancesOutcome;
1131         typedef Aws::Utils::Outcome<DescribeClientVpnAuthorizationRulesResponse, EC2Error> DescribeClientVpnAuthorizationRulesOutcome;
1132         typedef Aws::Utils::Outcome<DescribeClientVpnConnectionsResponse, EC2Error> DescribeClientVpnConnectionsOutcome;
1133         typedef Aws::Utils::Outcome<DescribeClientVpnEndpointsResponse, EC2Error> DescribeClientVpnEndpointsOutcome;
1134         typedef Aws::Utils::Outcome<DescribeClientVpnRoutesResponse, EC2Error> DescribeClientVpnRoutesOutcome;
1135         typedef Aws::Utils::Outcome<DescribeClientVpnTargetNetworksResponse, EC2Error> DescribeClientVpnTargetNetworksOutcome;
1136         typedef Aws::Utils::Outcome<DescribeCoipPoolsResponse, EC2Error> DescribeCoipPoolsOutcome;
1137         typedef Aws::Utils::Outcome<DescribeConversionTasksResponse, EC2Error> DescribeConversionTasksOutcome;
1138         typedef Aws::Utils::Outcome<DescribeCustomerGatewaysResponse, EC2Error> DescribeCustomerGatewaysOutcome;
1139         typedef Aws::Utils::Outcome<DescribeDhcpOptionsResponse, EC2Error> DescribeDhcpOptionsOutcome;
1140         typedef Aws::Utils::Outcome<DescribeEgressOnlyInternetGatewaysResponse, EC2Error> DescribeEgressOnlyInternetGatewaysOutcome;
1141         typedef Aws::Utils::Outcome<DescribeElasticGpusResponse, EC2Error> DescribeElasticGpusOutcome;
1142         typedef Aws::Utils::Outcome<DescribeExportImageTasksResponse, EC2Error> DescribeExportImageTasksOutcome;
1143         typedef Aws::Utils::Outcome<DescribeExportTasksResponse, EC2Error> DescribeExportTasksOutcome;
1144         typedef Aws::Utils::Outcome<DescribeFastSnapshotRestoresResponse, EC2Error> DescribeFastSnapshotRestoresOutcome;
1145         typedef Aws::Utils::Outcome<DescribeFleetHistoryResponse, EC2Error> DescribeFleetHistoryOutcome;
1146         typedef Aws::Utils::Outcome<DescribeFleetInstancesResponse, EC2Error> DescribeFleetInstancesOutcome;
1147         typedef Aws::Utils::Outcome<DescribeFleetsResponse, EC2Error> DescribeFleetsOutcome;
1148         typedef Aws::Utils::Outcome<DescribeFlowLogsResponse, EC2Error> DescribeFlowLogsOutcome;
1149         typedef Aws::Utils::Outcome<DescribeFpgaImageAttributeResponse, EC2Error> DescribeFpgaImageAttributeOutcome;
1150         typedef Aws::Utils::Outcome<DescribeFpgaImagesResponse, EC2Error> DescribeFpgaImagesOutcome;
1151         typedef Aws::Utils::Outcome<DescribeHostReservationOfferingsResponse, EC2Error> DescribeHostReservationOfferingsOutcome;
1152         typedef Aws::Utils::Outcome<DescribeHostReservationsResponse, EC2Error> DescribeHostReservationsOutcome;
1153         typedef Aws::Utils::Outcome<DescribeHostsResponse, EC2Error> DescribeHostsOutcome;
1154         typedef Aws::Utils::Outcome<DescribeIamInstanceProfileAssociationsResponse, EC2Error> DescribeIamInstanceProfileAssociationsOutcome;
1155         typedef Aws::Utils::Outcome<DescribeIdFormatResponse, EC2Error> DescribeIdFormatOutcome;
1156         typedef Aws::Utils::Outcome<DescribeIdentityIdFormatResponse, EC2Error> DescribeIdentityIdFormatOutcome;
1157         typedef Aws::Utils::Outcome<DescribeImageAttributeResponse, EC2Error> DescribeImageAttributeOutcome;
1158         typedef Aws::Utils::Outcome<DescribeImagesResponse, EC2Error> DescribeImagesOutcome;
1159         typedef Aws::Utils::Outcome<DescribeImportImageTasksResponse, EC2Error> DescribeImportImageTasksOutcome;
1160         typedef Aws::Utils::Outcome<DescribeImportSnapshotTasksResponse, EC2Error> DescribeImportSnapshotTasksOutcome;
1161         typedef Aws::Utils::Outcome<DescribeInstanceAttributeResponse, EC2Error> DescribeInstanceAttributeOutcome;
1162         typedef Aws::Utils::Outcome<DescribeInstanceCreditSpecificationsResponse, EC2Error> DescribeInstanceCreditSpecificationsOutcome;
1163         typedef Aws::Utils::Outcome<DescribeInstanceEventNotificationAttributesResponse, EC2Error> DescribeInstanceEventNotificationAttributesOutcome;
1164         typedef Aws::Utils::Outcome<DescribeInstanceEventWindowsResponse, EC2Error> DescribeInstanceEventWindowsOutcome;
1165         typedef Aws::Utils::Outcome<DescribeInstanceStatusResponse, EC2Error> DescribeInstanceStatusOutcome;
1166         typedef Aws::Utils::Outcome<DescribeInstanceTypeOfferingsResponse, EC2Error> DescribeInstanceTypeOfferingsOutcome;
1167         typedef Aws::Utils::Outcome<DescribeInstanceTypesResponse, EC2Error> DescribeInstanceTypesOutcome;
1168         typedef Aws::Utils::Outcome<DescribeInstancesResponse, EC2Error> DescribeInstancesOutcome;
1169         typedef Aws::Utils::Outcome<DescribeInternetGatewaysResponse, EC2Error> DescribeInternetGatewaysOutcome;
1170         typedef Aws::Utils::Outcome<DescribeIpv6PoolsResponse, EC2Error> DescribeIpv6PoolsOutcome;
1171         typedef Aws::Utils::Outcome<DescribeKeyPairsResponse, EC2Error> DescribeKeyPairsOutcome;
1172         typedef Aws::Utils::Outcome<DescribeLaunchTemplateVersionsResponse, EC2Error> DescribeLaunchTemplateVersionsOutcome;
1173         typedef Aws::Utils::Outcome<DescribeLaunchTemplatesResponse, EC2Error> DescribeLaunchTemplatesOutcome;
1174         typedef Aws::Utils::Outcome<DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsResponse, EC2Error> DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsOutcome;
1175         typedef Aws::Utils::Outcome<DescribeLocalGatewayRouteTableVpcAssociationsResponse, EC2Error> DescribeLocalGatewayRouteTableVpcAssociationsOutcome;
1176         typedef Aws::Utils::Outcome<DescribeLocalGatewayRouteTablesResponse, EC2Error> DescribeLocalGatewayRouteTablesOutcome;
1177         typedef Aws::Utils::Outcome<DescribeLocalGatewayVirtualInterfaceGroupsResponse, EC2Error> DescribeLocalGatewayVirtualInterfaceGroupsOutcome;
1178         typedef Aws::Utils::Outcome<DescribeLocalGatewayVirtualInterfacesResponse, EC2Error> DescribeLocalGatewayVirtualInterfacesOutcome;
1179         typedef Aws::Utils::Outcome<DescribeLocalGatewaysResponse, EC2Error> DescribeLocalGatewaysOutcome;
1180         typedef Aws::Utils::Outcome<DescribeManagedPrefixListsResponse, EC2Error> DescribeManagedPrefixListsOutcome;
1181         typedef Aws::Utils::Outcome<DescribeMovingAddressesResponse, EC2Error> DescribeMovingAddressesOutcome;
1182         typedef Aws::Utils::Outcome<DescribeNatGatewaysResponse, EC2Error> DescribeNatGatewaysOutcome;
1183         typedef Aws::Utils::Outcome<DescribeNetworkAclsResponse, EC2Error> DescribeNetworkAclsOutcome;
1184         typedef Aws::Utils::Outcome<DescribeNetworkInsightsAnalysesResponse, EC2Error> DescribeNetworkInsightsAnalysesOutcome;
1185         typedef Aws::Utils::Outcome<DescribeNetworkInsightsPathsResponse, EC2Error> DescribeNetworkInsightsPathsOutcome;
1186         typedef Aws::Utils::Outcome<DescribeNetworkInterfaceAttributeResponse, EC2Error> DescribeNetworkInterfaceAttributeOutcome;
1187         typedef Aws::Utils::Outcome<DescribeNetworkInterfacePermissionsResponse, EC2Error> DescribeNetworkInterfacePermissionsOutcome;
1188         typedef Aws::Utils::Outcome<DescribeNetworkInterfacesResponse, EC2Error> DescribeNetworkInterfacesOutcome;
1189         typedef Aws::Utils::Outcome<DescribePlacementGroupsResponse, EC2Error> DescribePlacementGroupsOutcome;
1190         typedef Aws::Utils::Outcome<DescribePrefixListsResponse, EC2Error> DescribePrefixListsOutcome;
1191         typedef Aws::Utils::Outcome<DescribePrincipalIdFormatResponse, EC2Error> DescribePrincipalIdFormatOutcome;
1192         typedef Aws::Utils::Outcome<DescribePublicIpv4PoolsResponse, EC2Error> DescribePublicIpv4PoolsOutcome;
1193         typedef Aws::Utils::Outcome<DescribeRegionsResponse, EC2Error> DescribeRegionsOutcome;
1194         typedef Aws::Utils::Outcome<DescribeReplaceRootVolumeTasksResponse, EC2Error> DescribeReplaceRootVolumeTasksOutcome;
1195         typedef Aws::Utils::Outcome<DescribeReservedInstancesResponse, EC2Error> DescribeReservedInstancesOutcome;
1196         typedef Aws::Utils::Outcome<DescribeReservedInstancesListingsResponse, EC2Error> DescribeReservedInstancesListingsOutcome;
1197         typedef Aws::Utils::Outcome<DescribeReservedInstancesModificationsResponse, EC2Error> DescribeReservedInstancesModificationsOutcome;
1198         typedef Aws::Utils::Outcome<DescribeReservedInstancesOfferingsResponse, EC2Error> DescribeReservedInstancesOfferingsOutcome;
1199         typedef Aws::Utils::Outcome<DescribeRouteTablesResponse, EC2Error> DescribeRouteTablesOutcome;
1200         typedef Aws::Utils::Outcome<DescribeScheduledInstanceAvailabilityResponse, EC2Error> DescribeScheduledInstanceAvailabilityOutcome;
1201         typedef Aws::Utils::Outcome<DescribeScheduledInstancesResponse, EC2Error> DescribeScheduledInstancesOutcome;
1202         typedef Aws::Utils::Outcome<DescribeSecurityGroupReferencesResponse, EC2Error> DescribeSecurityGroupReferencesOutcome;
1203         typedef Aws::Utils::Outcome<DescribeSecurityGroupRulesResponse, EC2Error> DescribeSecurityGroupRulesOutcome;
1204         typedef Aws::Utils::Outcome<DescribeSecurityGroupsResponse, EC2Error> DescribeSecurityGroupsOutcome;
1205         typedef Aws::Utils::Outcome<DescribeSnapshotAttributeResponse, EC2Error> DescribeSnapshotAttributeOutcome;
1206         typedef Aws::Utils::Outcome<DescribeSnapshotsResponse, EC2Error> DescribeSnapshotsOutcome;
1207         typedef Aws::Utils::Outcome<DescribeSpotDatafeedSubscriptionResponse, EC2Error> DescribeSpotDatafeedSubscriptionOutcome;
1208         typedef Aws::Utils::Outcome<DescribeSpotFleetInstancesResponse, EC2Error> DescribeSpotFleetInstancesOutcome;
1209         typedef Aws::Utils::Outcome<DescribeSpotFleetRequestHistoryResponse, EC2Error> DescribeSpotFleetRequestHistoryOutcome;
1210         typedef Aws::Utils::Outcome<DescribeSpotFleetRequestsResponse, EC2Error> DescribeSpotFleetRequestsOutcome;
1211         typedef Aws::Utils::Outcome<DescribeSpotInstanceRequestsResponse, EC2Error> DescribeSpotInstanceRequestsOutcome;
1212         typedef Aws::Utils::Outcome<DescribeSpotPriceHistoryResponse, EC2Error> DescribeSpotPriceHistoryOutcome;
1213         typedef Aws::Utils::Outcome<DescribeStaleSecurityGroupsResponse, EC2Error> DescribeStaleSecurityGroupsOutcome;
1214         typedef Aws::Utils::Outcome<DescribeStoreImageTasksResponse, EC2Error> DescribeStoreImageTasksOutcome;
1215         typedef Aws::Utils::Outcome<DescribeSubnetsResponse, EC2Error> DescribeSubnetsOutcome;
1216         typedef Aws::Utils::Outcome<DescribeTagsResponse, EC2Error> DescribeTagsOutcome;
1217         typedef Aws::Utils::Outcome<DescribeTrafficMirrorFiltersResponse, EC2Error> DescribeTrafficMirrorFiltersOutcome;
1218         typedef Aws::Utils::Outcome<DescribeTrafficMirrorSessionsResponse, EC2Error> DescribeTrafficMirrorSessionsOutcome;
1219         typedef Aws::Utils::Outcome<DescribeTrafficMirrorTargetsResponse, EC2Error> DescribeTrafficMirrorTargetsOutcome;
1220         typedef Aws::Utils::Outcome<DescribeTransitGatewayAttachmentsResponse, EC2Error> DescribeTransitGatewayAttachmentsOutcome;
1221         typedef Aws::Utils::Outcome<DescribeTransitGatewayConnectPeersResponse, EC2Error> DescribeTransitGatewayConnectPeersOutcome;
1222         typedef Aws::Utils::Outcome<DescribeTransitGatewayConnectsResponse, EC2Error> DescribeTransitGatewayConnectsOutcome;
1223         typedef Aws::Utils::Outcome<DescribeTransitGatewayMulticastDomainsResponse, EC2Error> DescribeTransitGatewayMulticastDomainsOutcome;
1224         typedef Aws::Utils::Outcome<DescribeTransitGatewayPeeringAttachmentsResponse, EC2Error> DescribeTransitGatewayPeeringAttachmentsOutcome;
1225         typedef Aws::Utils::Outcome<DescribeTransitGatewayRouteTablesResponse, EC2Error> DescribeTransitGatewayRouteTablesOutcome;
1226         typedef Aws::Utils::Outcome<DescribeTransitGatewayVpcAttachmentsResponse, EC2Error> DescribeTransitGatewayVpcAttachmentsOutcome;
1227         typedef Aws::Utils::Outcome<DescribeTransitGatewaysResponse, EC2Error> DescribeTransitGatewaysOutcome;
1228         typedef Aws::Utils::Outcome<DescribeTrunkInterfaceAssociationsResponse, EC2Error> DescribeTrunkInterfaceAssociationsOutcome;
1229         typedef Aws::Utils::Outcome<DescribeVolumeAttributeResponse, EC2Error> DescribeVolumeAttributeOutcome;
1230         typedef Aws::Utils::Outcome<DescribeVolumeStatusResponse, EC2Error> DescribeVolumeStatusOutcome;
1231         typedef Aws::Utils::Outcome<DescribeVolumesResponse, EC2Error> DescribeVolumesOutcome;
1232         typedef Aws::Utils::Outcome<DescribeVolumesModificationsResponse, EC2Error> DescribeVolumesModificationsOutcome;
1233         typedef Aws::Utils::Outcome<DescribeVpcAttributeResponse, EC2Error> DescribeVpcAttributeOutcome;
1234         typedef Aws::Utils::Outcome<DescribeVpcClassicLinkResponse, EC2Error> DescribeVpcClassicLinkOutcome;
1235         typedef Aws::Utils::Outcome<DescribeVpcClassicLinkDnsSupportResponse, EC2Error> DescribeVpcClassicLinkDnsSupportOutcome;
1236         typedef Aws::Utils::Outcome<DescribeVpcEndpointConnectionNotificationsResponse, EC2Error> DescribeVpcEndpointConnectionNotificationsOutcome;
1237         typedef Aws::Utils::Outcome<DescribeVpcEndpointConnectionsResponse, EC2Error> DescribeVpcEndpointConnectionsOutcome;
1238         typedef Aws::Utils::Outcome<DescribeVpcEndpointServiceConfigurationsResponse, EC2Error> DescribeVpcEndpointServiceConfigurationsOutcome;
1239         typedef Aws::Utils::Outcome<DescribeVpcEndpointServicePermissionsResponse, EC2Error> DescribeVpcEndpointServicePermissionsOutcome;
1240         typedef Aws::Utils::Outcome<DescribeVpcEndpointServicesResponse, EC2Error> DescribeVpcEndpointServicesOutcome;
1241         typedef Aws::Utils::Outcome<DescribeVpcEndpointsResponse, EC2Error> DescribeVpcEndpointsOutcome;
1242         typedef Aws::Utils::Outcome<DescribeVpcPeeringConnectionsResponse, EC2Error> DescribeVpcPeeringConnectionsOutcome;
1243         typedef Aws::Utils::Outcome<DescribeVpcsResponse, EC2Error> DescribeVpcsOutcome;
1244         typedef Aws::Utils::Outcome<DescribeVpnConnectionsResponse, EC2Error> DescribeVpnConnectionsOutcome;
1245         typedef Aws::Utils::Outcome<DescribeVpnGatewaysResponse, EC2Error> DescribeVpnGatewaysOutcome;
1246         typedef Aws::Utils::Outcome<DetachClassicLinkVpcResponse, EC2Error> DetachClassicLinkVpcOutcome;
1247         typedef Aws::Utils::Outcome<Aws::NoResult, EC2Error> DetachInternetGatewayOutcome;
1248         typedef Aws::Utils::Outcome<Aws::NoResult, EC2Error> DetachNetworkInterfaceOutcome;
1249         typedef Aws::Utils::Outcome<DetachVolumeResponse, EC2Error> DetachVolumeOutcome;
1250         typedef Aws::Utils::Outcome<Aws::NoResult, EC2Error> DetachVpnGatewayOutcome;
1251         typedef Aws::Utils::Outcome<DisableEbsEncryptionByDefaultResponse, EC2Error> DisableEbsEncryptionByDefaultOutcome;
1252         typedef Aws::Utils::Outcome<DisableFastSnapshotRestoresResponse, EC2Error> DisableFastSnapshotRestoresOutcome;
1253         typedef Aws::Utils::Outcome<DisableImageDeprecationResponse, EC2Error> DisableImageDeprecationOutcome;
1254         typedef Aws::Utils::Outcome<DisableSerialConsoleAccessResponse, EC2Error> DisableSerialConsoleAccessOutcome;
1255         typedef Aws::Utils::Outcome<DisableTransitGatewayRouteTablePropagationResponse, EC2Error> DisableTransitGatewayRouteTablePropagationOutcome;
1256         typedef Aws::Utils::Outcome<Aws::NoResult, EC2Error> DisableVgwRoutePropagationOutcome;
1257         typedef Aws::Utils::Outcome<DisableVpcClassicLinkResponse, EC2Error> DisableVpcClassicLinkOutcome;
1258         typedef Aws::Utils::Outcome<DisableVpcClassicLinkDnsSupportResponse, EC2Error> DisableVpcClassicLinkDnsSupportOutcome;
1259         typedef Aws::Utils::Outcome<Aws::NoResult, EC2Error> DisassociateAddressOutcome;
1260         typedef Aws::Utils::Outcome<DisassociateClientVpnTargetNetworkResponse, EC2Error> DisassociateClientVpnTargetNetworkOutcome;
1261         typedef Aws::Utils::Outcome<DisassociateEnclaveCertificateIamRoleResponse, EC2Error> DisassociateEnclaveCertificateIamRoleOutcome;
1262         typedef Aws::Utils::Outcome<DisassociateIamInstanceProfileResponse, EC2Error> DisassociateIamInstanceProfileOutcome;
1263         typedef Aws::Utils::Outcome<DisassociateInstanceEventWindowResponse, EC2Error> DisassociateInstanceEventWindowOutcome;
1264         typedef Aws::Utils::Outcome<Aws::NoResult, EC2Error> DisassociateRouteTableOutcome;
1265         typedef Aws::Utils::Outcome<DisassociateSubnetCidrBlockResponse, EC2Error> DisassociateSubnetCidrBlockOutcome;
1266         typedef Aws::Utils::Outcome<DisassociateTransitGatewayMulticastDomainResponse, EC2Error> DisassociateTransitGatewayMulticastDomainOutcome;
1267         typedef Aws::Utils::Outcome<DisassociateTransitGatewayRouteTableResponse, EC2Error> DisassociateTransitGatewayRouteTableOutcome;
1268         typedef Aws::Utils::Outcome<DisassociateTrunkInterfaceResponse, EC2Error> DisassociateTrunkInterfaceOutcome;
1269         typedef Aws::Utils::Outcome<DisassociateVpcCidrBlockResponse, EC2Error> DisassociateVpcCidrBlockOutcome;
1270         typedef Aws::Utils::Outcome<EnableEbsEncryptionByDefaultResponse, EC2Error> EnableEbsEncryptionByDefaultOutcome;
1271         typedef Aws::Utils::Outcome<EnableFastSnapshotRestoresResponse, EC2Error> EnableFastSnapshotRestoresOutcome;
1272         typedef Aws::Utils::Outcome<EnableImageDeprecationResponse, EC2Error> EnableImageDeprecationOutcome;
1273         typedef Aws::Utils::Outcome<EnableSerialConsoleAccessResponse, EC2Error> EnableSerialConsoleAccessOutcome;
1274         typedef Aws::Utils::Outcome<EnableTransitGatewayRouteTablePropagationResponse, EC2Error> EnableTransitGatewayRouteTablePropagationOutcome;
1275         typedef Aws::Utils::Outcome<Aws::NoResult, EC2Error> EnableVgwRoutePropagationOutcome;
1276         typedef Aws::Utils::Outcome<Aws::NoResult, EC2Error> EnableVolumeIOOutcome;
1277         typedef Aws::Utils::Outcome<EnableVpcClassicLinkResponse, EC2Error> EnableVpcClassicLinkOutcome;
1278         typedef Aws::Utils::Outcome<EnableVpcClassicLinkDnsSupportResponse, EC2Error> EnableVpcClassicLinkDnsSupportOutcome;
1279         typedef Aws::Utils::Outcome<ExportClientVpnClientCertificateRevocationListResponse, EC2Error> ExportClientVpnClientCertificateRevocationListOutcome;
1280         typedef Aws::Utils::Outcome<ExportClientVpnClientConfigurationResponse, EC2Error> ExportClientVpnClientConfigurationOutcome;
1281         typedef Aws::Utils::Outcome<ExportImageResponse, EC2Error> ExportImageOutcome;
1282         typedef Aws::Utils::Outcome<ExportTransitGatewayRoutesResponse, EC2Error> ExportTransitGatewayRoutesOutcome;
1283         typedef Aws::Utils::Outcome<GetAssociatedEnclaveCertificateIamRolesResponse, EC2Error> GetAssociatedEnclaveCertificateIamRolesOutcome;
1284         typedef Aws::Utils::Outcome<GetAssociatedIpv6PoolCidrsResponse, EC2Error> GetAssociatedIpv6PoolCidrsOutcome;
1285         typedef Aws::Utils::Outcome<GetCapacityReservationUsageResponse, EC2Error> GetCapacityReservationUsageOutcome;
1286         typedef Aws::Utils::Outcome<GetCoipPoolUsageResponse, EC2Error> GetCoipPoolUsageOutcome;
1287         typedef Aws::Utils::Outcome<GetConsoleOutputResponse, EC2Error> GetConsoleOutputOutcome;
1288         typedef Aws::Utils::Outcome<GetConsoleScreenshotResponse, EC2Error> GetConsoleScreenshotOutcome;
1289         typedef Aws::Utils::Outcome<GetDefaultCreditSpecificationResponse, EC2Error> GetDefaultCreditSpecificationOutcome;
1290         typedef Aws::Utils::Outcome<GetEbsDefaultKmsKeyIdResponse, EC2Error> GetEbsDefaultKmsKeyIdOutcome;
1291         typedef Aws::Utils::Outcome<GetEbsEncryptionByDefaultResponse, EC2Error> GetEbsEncryptionByDefaultOutcome;
1292         typedef Aws::Utils::Outcome<GetFlowLogsIntegrationTemplateResponse, EC2Error> GetFlowLogsIntegrationTemplateOutcome;
1293         typedef Aws::Utils::Outcome<GetGroupsForCapacityReservationResponse, EC2Error> GetGroupsForCapacityReservationOutcome;
1294         typedef Aws::Utils::Outcome<GetHostReservationPurchasePreviewResponse, EC2Error> GetHostReservationPurchasePreviewOutcome;
1295         typedef Aws::Utils::Outcome<GetLaunchTemplateDataResponse, EC2Error> GetLaunchTemplateDataOutcome;
1296         typedef Aws::Utils::Outcome<GetManagedPrefixListAssociationsResponse, EC2Error> GetManagedPrefixListAssociationsOutcome;
1297         typedef Aws::Utils::Outcome<GetManagedPrefixListEntriesResponse, EC2Error> GetManagedPrefixListEntriesOutcome;
1298         typedef Aws::Utils::Outcome<GetPasswordDataResponse, EC2Error> GetPasswordDataOutcome;
1299         typedef Aws::Utils::Outcome<GetReservedInstancesExchangeQuoteResponse, EC2Error> GetReservedInstancesExchangeQuoteOutcome;
1300         typedef Aws::Utils::Outcome<GetSerialConsoleAccessStatusResponse, EC2Error> GetSerialConsoleAccessStatusOutcome;
1301         typedef Aws::Utils::Outcome<GetSubnetCidrReservationsResponse, EC2Error> GetSubnetCidrReservationsOutcome;
1302         typedef Aws::Utils::Outcome<GetTransitGatewayAttachmentPropagationsResponse, EC2Error> GetTransitGatewayAttachmentPropagationsOutcome;
1303         typedef Aws::Utils::Outcome<GetTransitGatewayMulticastDomainAssociationsResponse, EC2Error> GetTransitGatewayMulticastDomainAssociationsOutcome;
1304         typedef Aws::Utils::Outcome<GetTransitGatewayPrefixListReferencesResponse, EC2Error> GetTransitGatewayPrefixListReferencesOutcome;
1305         typedef Aws::Utils::Outcome<GetTransitGatewayRouteTableAssociationsResponse, EC2Error> GetTransitGatewayRouteTableAssociationsOutcome;
1306         typedef Aws::Utils::Outcome<GetTransitGatewayRouteTablePropagationsResponse, EC2Error> GetTransitGatewayRouteTablePropagationsOutcome;
1307         typedef Aws::Utils::Outcome<GetVpnConnectionDeviceSampleConfigurationResponse, EC2Error> GetVpnConnectionDeviceSampleConfigurationOutcome;
1308         typedef Aws::Utils::Outcome<GetVpnConnectionDeviceTypesResponse, EC2Error> GetVpnConnectionDeviceTypesOutcome;
1309         typedef Aws::Utils::Outcome<ImportClientVpnClientCertificateRevocationListResponse, EC2Error> ImportClientVpnClientCertificateRevocationListOutcome;
1310         typedef Aws::Utils::Outcome<ImportImageResponse, EC2Error> ImportImageOutcome;
1311         typedef Aws::Utils::Outcome<ImportInstanceResponse, EC2Error> ImportInstanceOutcome;
1312         typedef Aws::Utils::Outcome<ImportKeyPairResponse, EC2Error> ImportKeyPairOutcome;
1313         typedef Aws::Utils::Outcome<ImportSnapshotResponse, EC2Error> ImportSnapshotOutcome;
1314         typedef Aws::Utils::Outcome<ImportVolumeResponse, EC2Error> ImportVolumeOutcome;
1315         typedef Aws::Utils::Outcome<ModifyAddressAttributeResponse, EC2Error> ModifyAddressAttributeOutcome;
1316         typedef Aws::Utils::Outcome<ModifyAvailabilityZoneGroupResponse, EC2Error> ModifyAvailabilityZoneGroupOutcome;
1317         typedef Aws::Utils::Outcome<ModifyCapacityReservationResponse, EC2Error> ModifyCapacityReservationOutcome;
1318         typedef Aws::Utils::Outcome<ModifyCapacityReservationFleetResponse, EC2Error> ModifyCapacityReservationFleetOutcome;
1319         typedef Aws::Utils::Outcome<ModifyClientVpnEndpointResponse, EC2Error> ModifyClientVpnEndpointOutcome;
1320         typedef Aws::Utils::Outcome<ModifyDefaultCreditSpecificationResponse, EC2Error> ModifyDefaultCreditSpecificationOutcome;
1321         typedef Aws::Utils::Outcome<ModifyEbsDefaultKmsKeyIdResponse, EC2Error> ModifyEbsDefaultKmsKeyIdOutcome;
1322         typedef Aws::Utils::Outcome<ModifyFleetResponse, EC2Error> ModifyFleetOutcome;
1323         typedef Aws::Utils::Outcome<ModifyFpgaImageAttributeResponse, EC2Error> ModifyFpgaImageAttributeOutcome;
1324         typedef Aws::Utils::Outcome<ModifyHostsResponse, EC2Error> ModifyHostsOutcome;
1325         typedef Aws::Utils::Outcome<Aws::NoResult, EC2Error> ModifyIdFormatOutcome;
1326         typedef Aws::Utils::Outcome<Aws::NoResult, EC2Error> ModifyIdentityIdFormatOutcome;
1327         typedef Aws::Utils::Outcome<Aws::NoResult, EC2Error> ModifyImageAttributeOutcome;
1328         typedef Aws::Utils::Outcome<Aws::NoResult, EC2Error> ModifyInstanceAttributeOutcome;
1329         typedef Aws::Utils::Outcome<ModifyInstanceCapacityReservationAttributesResponse, EC2Error> ModifyInstanceCapacityReservationAttributesOutcome;
1330         typedef Aws::Utils::Outcome<ModifyInstanceCreditSpecificationResponse, EC2Error> ModifyInstanceCreditSpecificationOutcome;
1331         typedef Aws::Utils::Outcome<ModifyInstanceEventStartTimeResponse, EC2Error> ModifyInstanceEventStartTimeOutcome;
1332         typedef Aws::Utils::Outcome<ModifyInstanceEventWindowResponse, EC2Error> ModifyInstanceEventWindowOutcome;
1333         typedef Aws::Utils::Outcome<ModifyInstanceMetadataOptionsResponse, EC2Error> ModifyInstanceMetadataOptionsOutcome;
1334         typedef Aws::Utils::Outcome<ModifyInstancePlacementResponse, EC2Error> ModifyInstancePlacementOutcome;
1335         typedef Aws::Utils::Outcome<ModifyLaunchTemplateResponse, EC2Error> ModifyLaunchTemplateOutcome;
1336         typedef Aws::Utils::Outcome<ModifyManagedPrefixListResponse, EC2Error> ModifyManagedPrefixListOutcome;
1337         typedef Aws::Utils::Outcome<Aws::NoResult, EC2Error> ModifyNetworkInterfaceAttributeOutcome;
1338         typedef Aws::Utils::Outcome<ModifyReservedInstancesResponse, EC2Error> ModifyReservedInstancesOutcome;
1339         typedef Aws::Utils::Outcome<ModifySecurityGroupRulesResponse, EC2Error> ModifySecurityGroupRulesOutcome;
1340         typedef Aws::Utils::Outcome<Aws::NoResult, EC2Error> ModifySnapshotAttributeOutcome;
1341         typedef Aws::Utils::Outcome<ModifySpotFleetRequestResponse, EC2Error> ModifySpotFleetRequestOutcome;
1342         typedef Aws::Utils::Outcome<Aws::NoResult, EC2Error> ModifySubnetAttributeOutcome;
1343         typedef Aws::Utils::Outcome<ModifyTrafficMirrorFilterNetworkServicesResponse, EC2Error> ModifyTrafficMirrorFilterNetworkServicesOutcome;
1344         typedef Aws::Utils::Outcome<ModifyTrafficMirrorFilterRuleResponse, EC2Error> ModifyTrafficMirrorFilterRuleOutcome;
1345         typedef Aws::Utils::Outcome<ModifyTrafficMirrorSessionResponse, EC2Error> ModifyTrafficMirrorSessionOutcome;
1346         typedef Aws::Utils::Outcome<ModifyTransitGatewayResponse, EC2Error> ModifyTransitGatewayOutcome;
1347         typedef Aws::Utils::Outcome<ModifyTransitGatewayPrefixListReferenceResponse, EC2Error> ModifyTransitGatewayPrefixListReferenceOutcome;
1348         typedef Aws::Utils::Outcome<ModifyTransitGatewayVpcAttachmentResponse, EC2Error> ModifyTransitGatewayVpcAttachmentOutcome;
1349         typedef Aws::Utils::Outcome<ModifyVolumeResponse, EC2Error> ModifyVolumeOutcome;
1350         typedef Aws::Utils::Outcome<Aws::NoResult, EC2Error> ModifyVolumeAttributeOutcome;
1351         typedef Aws::Utils::Outcome<Aws::NoResult, EC2Error> ModifyVpcAttributeOutcome;
1352         typedef Aws::Utils::Outcome<ModifyVpcEndpointResponse, EC2Error> ModifyVpcEndpointOutcome;
1353         typedef Aws::Utils::Outcome<ModifyVpcEndpointConnectionNotificationResponse, EC2Error> ModifyVpcEndpointConnectionNotificationOutcome;
1354         typedef Aws::Utils::Outcome<ModifyVpcEndpointServiceConfigurationResponse, EC2Error> ModifyVpcEndpointServiceConfigurationOutcome;
1355         typedef Aws::Utils::Outcome<ModifyVpcEndpointServicePermissionsResponse, EC2Error> ModifyVpcEndpointServicePermissionsOutcome;
1356         typedef Aws::Utils::Outcome<ModifyVpcPeeringConnectionOptionsResponse, EC2Error> ModifyVpcPeeringConnectionOptionsOutcome;
1357         typedef Aws::Utils::Outcome<ModifyVpcTenancyResponse, EC2Error> ModifyVpcTenancyOutcome;
1358         typedef Aws::Utils::Outcome<ModifyVpnConnectionResponse, EC2Error> ModifyVpnConnectionOutcome;
1359         typedef Aws::Utils::Outcome<ModifyVpnConnectionOptionsResponse, EC2Error> ModifyVpnConnectionOptionsOutcome;
1360         typedef Aws::Utils::Outcome<ModifyVpnTunnelCertificateResponse, EC2Error> ModifyVpnTunnelCertificateOutcome;
1361         typedef Aws::Utils::Outcome<ModifyVpnTunnelOptionsResponse, EC2Error> ModifyVpnTunnelOptionsOutcome;
1362         typedef Aws::Utils::Outcome<MonitorInstancesResponse, EC2Error> MonitorInstancesOutcome;
1363         typedef Aws::Utils::Outcome<MoveAddressToVpcResponse, EC2Error> MoveAddressToVpcOutcome;
1364         typedef Aws::Utils::Outcome<ProvisionByoipCidrResponse, EC2Error> ProvisionByoipCidrOutcome;
1365         typedef Aws::Utils::Outcome<PurchaseHostReservationResponse, EC2Error> PurchaseHostReservationOutcome;
1366         typedef Aws::Utils::Outcome<PurchaseReservedInstancesOfferingResponse, EC2Error> PurchaseReservedInstancesOfferingOutcome;
1367         typedef Aws::Utils::Outcome<PurchaseScheduledInstancesResponse, EC2Error> PurchaseScheduledInstancesOutcome;
1368         typedef Aws::Utils::Outcome<Aws::NoResult, EC2Error> RebootInstancesOutcome;
1369         typedef Aws::Utils::Outcome<RegisterImageResponse, EC2Error> RegisterImageOutcome;
1370         typedef Aws::Utils::Outcome<RegisterInstanceEventNotificationAttributesResponse, EC2Error> RegisterInstanceEventNotificationAttributesOutcome;
1371         typedef Aws::Utils::Outcome<RegisterTransitGatewayMulticastGroupMembersResponse, EC2Error> RegisterTransitGatewayMulticastGroupMembersOutcome;
1372         typedef Aws::Utils::Outcome<RegisterTransitGatewayMulticastGroupSourcesResponse, EC2Error> RegisterTransitGatewayMulticastGroupSourcesOutcome;
1373         typedef Aws::Utils::Outcome<RejectTransitGatewayMulticastDomainAssociationsResponse, EC2Error> RejectTransitGatewayMulticastDomainAssociationsOutcome;
1374         typedef Aws::Utils::Outcome<RejectTransitGatewayPeeringAttachmentResponse, EC2Error> RejectTransitGatewayPeeringAttachmentOutcome;
1375         typedef Aws::Utils::Outcome<RejectTransitGatewayVpcAttachmentResponse, EC2Error> RejectTransitGatewayVpcAttachmentOutcome;
1376         typedef Aws::Utils::Outcome<RejectVpcEndpointConnectionsResponse, EC2Error> RejectVpcEndpointConnectionsOutcome;
1377         typedef Aws::Utils::Outcome<RejectVpcPeeringConnectionResponse, EC2Error> RejectVpcPeeringConnectionOutcome;
1378         typedef Aws::Utils::Outcome<Aws::NoResult, EC2Error> ReleaseAddressOutcome;
1379         typedef Aws::Utils::Outcome<ReleaseHostsResponse, EC2Error> ReleaseHostsOutcome;
1380         typedef Aws::Utils::Outcome<ReplaceIamInstanceProfileAssociationResponse, EC2Error> ReplaceIamInstanceProfileAssociationOutcome;
1381         typedef Aws::Utils::Outcome<ReplaceNetworkAclAssociationResponse, EC2Error> ReplaceNetworkAclAssociationOutcome;
1382         typedef Aws::Utils::Outcome<Aws::NoResult, EC2Error> ReplaceNetworkAclEntryOutcome;
1383         typedef Aws::Utils::Outcome<Aws::NoResult, EC2Error> ReplaceRouteOutcome;
1384         typedef Aws::Utils::Outcome<ReplaceRouteTableAssociationResponse, EC2Error> ReplaceRouteTableAssociationOutcome;
1385         typedef Aws::Utils::Outcome<ReplaceTransitGatewayRouteResponse, EC2Error> ReplaceTransitGatewayRouteOutcome;
1386         typedef Aws::Utils::Outcome<Aws::NoResult, EC2Error> ReportInstanceStatusOutcome;
1387         typedef Aws::Utils::Outcome<RequestSpotFleetResponse, EC2Error> RequestSpotFleetOutcome;
1388         typedef Aws::Utils::Outcome<RequestSpotInstancesResponse, EC2Error> RequestSpotInstancesOutcome;
1389         typedef Aws::Utils::Outcome<ResetAddressAttributeResponse, EC2Error> ResetAddressAttributeOutcome;
1390         typedef Aws::Utils::Outcome<ResetEbsDefaultKmsKeyIdResponse, EC2Error> ResetEbsDefaultKmsKeyIdOutcome;
1391         typedef Aws::Utils::Outcome<ResetFpgaImageAttributeResponse, EC2Error> ResetFpgaImageAttributeOutcome;
1392         typedef Aws::Utils::Outcome<Aws::NoResult, EC2Error> ResetImageAttributeOutcome;
1393         typedef Aws::Utils::Outcome<Aws::NoResult, EC2Error> ResetInstanceAttributeOutcome;
1394         typedef Aws::Utils::Outcome<Aws::NoResult, EC2Error> ResetNetworkInterfaceAttributeOutcome;
1395         typedef Aws::Utils::Outcome<Aws::NoResult, EC2Error> ResetSnapshotAttributeOutcome;
1396         typedef Aws::Utils::Outcome<RestoreAddressToClassicResponse, EC2Error> RestoreAddressToClassicOutcome;
1397         typedef Aws::Utils::Outcome<RestoreManagedPrefixListVersionResponse, EC2Error> RestoreManagedPrefixListVersionOutcome;
1398         typedef Aws::Utils::Outcome<RevokeClientVpnIngressResponse, EC2Error> RevokeClientVpnIngressOutcome;
1399         typedef Aws::Utils::Outcome<RevokeSecurityGroupEgressResponse, EC2Error> RevokeSecurityGroupEgressOutcome;
1400         typedef Aws::Utils::Outcome<RevokeSecurityGroupIngressResponse, EC2Error> RevokeSecurityGroupIngressOutcome;
1401         typedef Aws::Utils::Outcome<RunInstancesResponse, EC2Error> RunInstancesOutcome;
1402         typedef Aws::Utils::Outcome<RunScheduledInstancesResponse, EC2Error> RunScheduledInstancesOutcome;
1403         typedef Aws::Utils::Outcome<SearchLocalGatewayRoutesResponse, EC2Error> SearchLocalGatewayRoutesOutcome;
1404         typedef Aws::Utils::Outcome<SearchTransitGatewayMulticastGroupsResponse, EC2Error> SearchTransitGatewayMulticastGroupsOutcome;
1405         typedef Aws::Utils::Outcome<SearchTransitGatewayRoutesResponse, EC2Error> SearchTransitGatewayRoutesOutcome;
1406         typedef Aws::Utils::Outcome<Aws::NoResult, EC2Error> SendDiagnosticInterruptOutcome;
1407         typedef Aws::Utils::Outcome<StartInstancesResponse, EC2Error> StartInstancesOutcome;
1408         typedef Aws::Utils::Outcome<StartNetworkInsightsAnalysisResponse, EC2Error> StartNetworkInsightsAnalysisOutcome;
1409         typedef Aws::Utils::Outcome<StartVpcEndpointServicePrivateDnsVerificationResponse, EC2Error> StartVpcEndpointServicePrivateDnsVerificationOutcome;
1410         typedef Aws::Utils::Outcome<StopInstancesResponse, EC2Error> StopInstancesOutcome;
1411         typedef Aws::Utils::Outcome<TerminateClientVpnConnectionsResponse, EC2Error> TerminateClientVpnConnectionsOutcome;
1412         typedef Aws::Utils::Outcome<TerminateInstancesResponse, EC2Error> TerminateInstancesOutcome;
1413         typedef Aws::Utils::Outcome<UnassignIpv6AddressesResponse, EC2Error> UnassignIpv6AddressesOutcome;
1414         typedef Aws::Utils::Outcome<Aws::NoResult, EC2Error> UnassignPrivateIpAddressesOutcome;
1415         typedef Aws::Utils::Outcome<UnmonitorInstancesResponse, EC2Error> UnmonitorInstancesOutcome;
1416         typedef Aws::Utils::Outcome<UpdateSecurityGroupRuleDescriptionsEgressResponse, EC2Error> UpdateSecurityGroupRuleDescriptionsEgressOutcome;
1417         typedef Aws::Utils::Outcome<UpdateSecurityGroupRuleDescriptionsIngressResponse, EC2Error> UpdateSecurityGroupRuleDescriptionsIngressOutcome;
1418         typedef Aws::Utils::Outcome<WithdrawByoipCidrResponse, EC2Error> WithdrawByoipCidrOutcome;
1419 
1420         typedef std::future<AcceptReservedInstancesExchangeQuoteOutcome> AcceptReservedInstancesExchangeQuoteOutcomeCallable;
1421         typedef std::future<AcceptTransitGatewayMulticastDomainAssociationsOutcome> AcceptTransitGatewayMulticastDomainAssociationsOutcomeCallable;
1422         typedef std::future<AcceptTransitGatewayPeeringAttachmentOutcome> AcceptTransitGatewayPeeringAttachmentOutcomeCallable;
1423         typedef std::future<AcceptTransitGatewayVpcAttachmentOutcome> AcceptTransitGatewayVpcAttachmentOutcomeCallable;
1424         typedef std::future<AcceptVpcEndpointConnectionsOutcome> AcceptVpcEndpointConnectionsOutcomeCallable;
1425         typedef std::future<AcceptVpcPeeringConnectionOutcome> AcceptVpcPeeringConnectionOutcomeCallable;
1426         typedef std::future<AdvertiseByoipCidrOutcome> AdvertiseByoipCidrOutcomeCallable;
1427         typedef std::future<AllocateAddressOutcome> AllocateAddressOutcomeCallable;
1428         typedef std::future<AllocateHostsOutcome> AllocateHostsOutcomeCallable;
1429         typedef std::future<ApplySecurityGroupsToClientVpnTargetNetworkOutcome> ApplySecurityGroupsToClientVpnTargetNetworkOutcomeCallable;
1430         typedef std::future<AssignIpv6AddressesOutcome> AssignIpv6AddressesOutcomeCallable;
1431         typedef std::future<AssignPrivateIpAddressesOutcome> AssignPrivateIpAddressesOutcomeCallable;
1432         typedef std::future<AssociateAddressOutcome> AssociateAddressOutcomeCallable;
1433         typedef std::future<AssociateClientVpnTargetNetworkOutcome> AssociateClientVpnTargetNetworkOutcomeCallable;
1434         typedef std::future<AssociateDhcpOptionsOutcome> AssociateDhcpOptionsOutcomeCallable;
1435         typedef std::future<AssociateEnclaveCertificateIamRoleOutcome> AssociateEnclaveCertificateIamRoleOutcomeCallable;
1436         typedef std::future<AssociateIamInstanceProfileOutcome> AssociateIamInstanceProfileOutcomeCallable;
1437         typedef std::future<AssociateInstanceEventWindowOutcome> AssociateInstanceEventWindowOutcomeCallable;
1438         typedef std::future<AssociateRouteTableOutcome> AssociateRouteTableOutcomeCallable;
1439         typedef std::future<AssociateSubnetCidrBlockOutcome> AssociateSubnetCidrBlockOutcomeCallable;
1440         typedef std::future<AssociateTransitGatewayMulticastDomainOutcome> AssociateTransitGatewayMulticastDomainOutcomeCallable;
1441         typedef std::future<AssociateTransitGatewayRouteTableOutcome> AssociateTransitGatewayRouteTableOutcomeCallable;
1442         typedef std::future<AssociateTrunkInterfaceOutcome> AssociateTrunkInterfaceOutcomeCallable;
1443         typedef std::future<AssociateVpcCidrBlockOutcome> AssociateVpcCidrBlockOutcomeCallable;
1444         typedef std::future<AttachClassicLinkVpcOutcome> AttachClassicLinkVpcOutcomeCallable;
1445         typedef std::future<AttachInternetGatewayOutcome> AttachInternetGatewayOutcomeCallable;
1446         typedef std::future<AttachNetworkInterfaceOutcome> AttachNetworkInterfaceOutcomeCallable;
1447         typedef std::future<AttachVolumeOutcome> AttachVolumeOutcomeCallable;
1448         typedef std::future<AttachVpnGatewayOutcome> AttachVpnGatewayOutcomeCallable;
1449         typedef std::future<AuthorizeClientVpnIngressOutcome> AuthorizeClientVpnIngressOutcomeCallable;
1450         typedef std::future<AuthorizeSecurityGroupEgressOutcome> AuthorizeSecurityGroupEgressOutcomeCallable;
1451         typedef std::future<AuthorizeSecurityGroupIngressOutcome> AuthorizeSecurityGroupIngressOutcomeCallable;
1452         typedef std::future<BundleInstanceOutcome> BundleInstanceOutcomeCallable;
1453         typedef std::future<CancelBundleTaskOutcome> CancelBundleTaskOutcomeCallable;
1454         typedef std::future<CancelCapacityReservationOutcome> CancelCapacityReservationOutcomeCallable;
1455         typedef std::future<CancelCapacityReservationFleetsOutcome> CancelCapacityReservationFleetsOutcomeCallable;
1456         typedef std::future<CancelConversionTaskOutcome> CancelConversionTaskOutcomeCallable;
1457         typedef std::future<CancelExportTaskOutcome> CancelExportTaskOutcomeCallable;
1458         typedef std::future<CancelImportTaskOutcome> CancelImportTaskOutcomeCallable;
1459         typedef std::future<CancelReservedInstancesListingOutcome> CancelReservedInstancesListingOutcomeCallable;
1460         typedef std::future<CancelSpotFleetRequestsOutcome> CancelSpotFleetRequestsOutcomeCallable;
1461         typedef std::future<CancelSpotInstanceRequestsOutcome> CancelSpotInstanceRequestsOutcomeCallable;
1462         typedef std::future<ConfirmProductInstanceOutcome> ConfirmProductInstanceOutcomeCallable;
1463         typedef std::future<CopyFpgaImageOutcome> CopyFpgaImageOutcomeCallable;
1464         typedef std::future<CopyImageOutcome> CopyImageOutcomeCallable;
1465         typedef std::future<CopySnapshotOutcome> CopySnapshotOutcomeCallable;
1466         typedef std::future<CreateCapacityReservationOutcome> CreateCapacityReservationOutcomeCallable;
1467         typedef std::future<CreateCapacityReservationFleetOutcome> CreateCapacityReservationFleetOutcomeCallable;
1468         typedef std::future<CreateCarrierGatewayOutcome> CreateCarrierGatewayOutcomeCallable;
1469         typedef std::future<CreateClientVpnEndpointOutcome> CreateClientVpnEndpointOutcomeCallable;
1470         typedef std::future<CreateClientVpnRouteOutcome> CreateClientVpnRouteOutcomeCallable;
1471         typedef std::future<CreateCustomerGatewayOutcome> CreateCustomerGatewayOutcomeCallable;
1472         typedef std::future<CreateDefaultSubnetOutcome> CreateDefaultSubnetOutcomeCallable;
1473         typedef std::future<CreateDefaultVpcOutcome> CreateDefaultVpcOutcomeCallable;
1474         typedef std::future<CreateDhcpOptionsOutcome> CreateDhcpOptionsOutcomeCallable;
1475         typedef std::future<CreateEgressOnlyInternetGatewayOutcome> CreateEgressOnlyInternetGatewayOutcomeCallable;
1476         typedef std::future<CreateFleetOutcome> CreateFleetOutcomeCallable;
1477         typedef std::future<CreateFlowLogsOutcome> CreateFlowLogsOutcomeCallable;
1478         typedef std::future<CreateFpgaImageOutcome> CreateFpgaImageOutcomeCallable;
1479         typedef std::future<CreateImageOutcome> CreateImageOutcomeCallable;
1480         typedef std::future<CreateInstanceEventWindowOutcome> CreateInstanceEventWindowOutcomeCallable;
1481         typedef std::future<CreateInstanceExportTaskOutcome> CreateInstanceExportTaskOutcomeCallable;
1482         typedef std::future<CreateInternetGatewayOutcome> CreateInternetGatewayOutcomeCallable;
1483         typedef std::future<CreateKeyPairOutcome> CreateKeyPairOutcomeCallable;
1484         typedef std::future<CreateLaunchTemplateOutcome> CreateLaunchTemplateOutcomeCallable;
1485         typedef std::future<CreateLaunchTemplateVersionOutcome> CreateLaunchTemplateVersionOutcomeCallable;
1486         typedef std::future<CreateLocalGatewayRouteOutcome> CreateLocalGatewayRouteOutcomeCallable;
1487         typedef std::future<CreateLocalGatewayRouteTableVpcAssociationOutcome> CreateLocalGatewayRouteTableVpcAssociationOutcomeCallable;
1488         typedef std::future<CreateManagedPrefixListOutcome> CreateManagedPrefixListOutcomeCallable;
1489         typedef std::future<CreateNatGatewayOutcome> CreateNatGatewayOutcomeCallable;
1490         typedef std::future<CreateNetworkAclOutcome> CreateNetworkAclOutcomeCallable;
1491         typedef std::future<CreateNetworkAclEntryOutcome> CreateNetworkAclEntryOutcomeCallable;
1492         typedef std::future<CreateNetworkInsightsPathOutcome> CreateNetworkInsightsPathOutcomeCallable;
1493         typedef std::future<CreateNetworkInterfaceOutcome> CreateNetworkInterfaceOutcomeCallable;
1494         typedef std::future<CreateNetworkInterfacePermissionOutcome> CreateNetworkInterfacePermissionOutcomeCallable;
1495         typedef std::future<CreatePlacementGroupOutcome> CreatePlacementGroupOutcomeCallable;
1496         typedef std::future<CreateReplaceRootVolumeTaskOutcome> CreateReplaceRootVolumeTaskOutcomeCallable;
1497         typedef std::future<CreateReservedInstancesListingOutcome> CreateReservedInstancesListingOutcomeCallable;
1498         typedef std::future<CreateRestoreImageTaskOutcome> CreateRestoreImageTaskOutcomeCallable;
1499         typedef std::future<CreateRouteOutcome> CreateRouteOutcomeCallable;
1500         typedef std::future<CreateRouteTableOutcome> CreateRouteTableOutcomeCallable;
1501         typedef std::future<CreateSecurityGroupOutcome> CreateSecurityGroupOutcomeCallable;
1502         typedef std::future<CreateSnapshotOutcome> CreateSnapshotOutcomeCallable;
1503         typedef std::future<CreateSnapshotsOutcome> CreateSnapshotsOutcomeCallable;
1504         typedef std::future<CreateSpotDatafeedSubscriptionOutcome> CreateSpotDatafeedSubscriptionOutcomeCallable;
1505         typedef std::future<CreateStoreImageTaskOutcome> CreateStoreImageTaskOutcomeCallable;
1506         typedef std::future<CreateSubnetOutcome> CreateSubnetOutcomeCallable;
1507         typedef std::future<CreateSubnetCidrReservationOutcome> CreateSubnetCidrReservationOutcomeCallable;
1508         typedef std::future<CreateTagsOutcome> CreateTagsOutcomeCallable;
1509         typedef std::future<CreateTrafficMirrorFilterOutcome> CreateTrafficMirrorFilterOutcomeCallable;
1510         typedef std::future<CreateTrafficMirrorFilterRuleOutcome> CreateTrafficMirrorFilterRuleOutcomeCallable;
1511         typedef std::future<CreateTrafficMirrorSessionOutcome> CreateTrafficMirrorSessionOutcomeCallable;
1512         typedef std::future<CreateTrafficMirrorTargetOutcome> CreateTrafficMirrorTargetOutcomeCallable;
1513         typedef std::future<CreateTransitGatewayOutcome> CreateTransitGatewayOutcomeCallable;
1514         typedef std::future<CreateTransitGatewayConnectOutcome> CreateTransitGatewayConnectOutcomeCallable;
1515         typedef std::future<CreateTransitGatewayConnectPeerOutcome> CreateTransitGatewayConnectPeerOutcomeCallable;
1516         typedef std::future<CreateTransitGatewayMulticastDomainOutcome> CreateTransitGatewayMulticastDomainOutcomeCallable;
1517         typedef std::future<CreateTransitGatewayPeeringAttachmentOutcome> CreateTransitGatewayPeeringAttachmentOutcomeCallable;
1518         typedef std::future<CreateTransitGatewayPrefixListReferenceOutcome> CreateTransitGatewayPrefixListReferenceOutcomeCallable;
1519         typedef std::future<CreateTransitGatewayRouteOutcome> CreateTransitGatewayRouteOutcomeCallable;
1520         typedef std::future<CreateTransitGatewayRouteTableOutcome> CreateTransitGatewayRouteTableOutcomeCallable;
1521         typedef std::future<CreateTransitGatewayVpcAttachmentOutcome> CreateTransitGatewayVpcAttachmentOutcomeCallable;
1522         typedef std::future<CreateVolumeOutcome> CreateVolumeOutcomeCallable;
1523         typedef std::future<CreateVpcOutcome> CreateVpcOutcomeCallable;
1524         typedef std::future<CreateVpcEndpointOutcome> CreateVpcEndpointOutcomeCallable;
1525         typedef std::future<CreateVpcEndpointConnectionNotificationOutcome> CreateVpcEndpointConnectionNotificationOutcomeCallable;
1526         typedef std::future<CreateVpcEndpointServiceConfigurationOutcome> CreateVpcEndpointServiceConfigurationOutcomeCallable;
1527         typedef std::future<CreateVpcPeeringConnectionOutcome> CreateVpcPeeringConnectionOutcomeCallable;
1528         typedef std::future<CreateVpnConnectionOutcome> CreateVpnConnectionOutcomeCallable;
1529         typedef std::future<CreateVpnConnectionRouteOutcome> CreateVpnConnectionRouteOutcomeCallable;
1530         typedef std::future<CreateVpnGatewayOutcome> CreateVpnGatewayOutcomeCallable;
1531         typedef std::future<DeleteCarrierGatewayOutcome> DeleteCarrierGatewayOutcomeCallable;
1532         typedef std::future<DeleteClientVpnEndpointOutcome> DeleteClientVpnEndpointOutcomeCallable;
1533         typedef std::future<DeleteClientVpnRouteOutcome> DeleteClientVpnRouteOutcomeCallable;
1534         typedef std::future<DeleteCustomerGatewayOutcome> DeleteCustomerGatewayOutcomeCallable;
1535         typedef std::future<DeleteDhcpOptionsOutcome> DeleteDhcpOptionsOutcomeCallable;
1536         typedef std::future<DeleteEgressOnlyInternetGatewayOutcome> DeleteEgressOnlyInternetGatewayOutcomeCallable;
1537         typedef std::future<DeleteFleetsOutcome> DeleteFleetsOutcomeCallable;
1538         typedef std::future<DeleteFlowLogsOutcome> DeleteFlowLogsOutcomeCallable;
1539         typedef std::future<DeleteFpgaImageOutcome> DeleteFpgaImageOutcomeCallable;
1540         typedef std::future<DeleteInstanceEventWindowOutcome> DeleteInstanceEventWindowOutcomeCallable;
1541         typedef std::future<DeleteInternetGatewayOutcome> DeleteInternetGatewayOutcomeCallable;
1542         typedef std::future<DeleteKeyPairOutcome> DeleteKeyPairOutcomeCallable;
1543         typedef std::future<DeleteLaunchTemplateOutcome> DeleteLaunchTemplateOutcomeCallable;
1544         typedef std::future<DeleteLaunchTemplateVersionsOutcome> DeleteLaunchTemplateVersionsOutcomeCallable;
1545         typedef std::future<DeleteLocalGatewayRouteOutcome> DeleteLocalGatewayRouteOutcomeCallable;
1546         typedef std::future<DeleteLocalGatewayRouteTableVpcAssociationOutcome> DeleteLocalGatewayRouteTableVpcAssociationOutcomeCallable;
1547         typedef std::future<DeleteManagedPrefixListOutcome> DeleteManagedPrefixListOutcomeCallable;
1548         typedef std::future<DeleteNatGatewayOutcome> DeleteNatGatewayOutcomeCallable;
1549         typedef std::future<DeleteNetworkAclOutcome> DeleteNetworkAclOutcomeCallable;
1550         typedef std::future<DeleteNetworkAclEntryOutcome> DeleteNetworkAclEntryOutcomeCallable;
1551         typedef std::future<DeleteNetworkInsightsAnalysisOutcome> DeleteNetworkInsightsAnalysisOutcomeCallable;
1552         typedef std::future<DeleteNetworkInsightsPathOutcome> DeleteNetworkInsightsPathOutcomeCallable;
1553         typedef std::future<DeleteNetworkInterfaceOutcome> DeleteNetworkInterfaceOutcomeCallable;
1554         typedef std::future<DeleteNetworkInterfacePermissionOutcome> DeleteNetworkInterfacePermissionOutcomeCallable;
1555         typedef std::future<DeletePlacementGroupOutcome> DeletePlacementGroupOutcomeCallable;
1556         typedef std::future<DeleteQueuedReservedInstancesOutcome> DeleteQueuedReservedInstancesOutcomeCallable;
1557         typedef std::future<DeleteRouteOutcome> DeleteRouteOutcomeCallable;
1558         typedef std::future<DeleteRouteTableOutcome> DeleteRouteTableOutcomeCallable;
1559         typedef std::future<DeleteSecurityGroupOutcome> DeleteSecurityGroupOutcomeCallable;
1560         typedef std::future<DeleteSnapshotOutcome> DeleteSnapshotOutcomeCallable;
1561         typedef std::future<DeleteSpotDatafeedSubscriptionOutcome> DeleteSpotDatafeedSubscriptionOutcomeCallable;
1562         typedef std::future<DeleteSubnetOutcome> DeleteSubnetOutcomeCallable;
1563         typedef std::future<DeleteSubnetCidrReservationOutcome> DeleteSubnetCidrReservationOutcomeCallable;
1564         typedef std::future<DeleteTagsOutcome> DeleteTagsOutcomeCallable;
1565         typedef std::future<DeleteTrafficMirrorFilterOutcome> DeleteTrafficMirrorFilterOutcomeCallable;
1566         typedef std::future<DeleteTrafficMirrorFilterRuleOutcome> DeleteTrafficMirrorFilterRuleOutcomeCallable;
1567         typedef std::future<DeleteTrafficMirrorSessionOutcome> DeleteTrafficMirrorSessionOutcomeCallable;
1568         typedef std::future<DeleteTrafficMirrorTargetOutcome> DeleteTrafficMirrorTargetOutcomeCallable;
1569         typedef std::future<DeleteTransitGatewayOutcome> DeleteTransitGatewayOutcomeCallable;
1570         typedef std::future<DeleteTransitGatewayConnectOutcome> DeleteTransitGatewayConnectOutcomeCallable;
1571         typedef std::future<DeleteTransitGatewayConnectPeerOutcome> DeleteTransitGatewayConnectPeerOutcomeCallable;
1572         typedef std::future<DeleteTransitGatewayMulticastDomainOutcome> DeleteTransitGatewayMulticastDomainOutcomeCallable;
1573         typedef std::future<DeleteTransitGatewayPeeringAttachmentOutcome> DeleteTransitGatewayPeeringAttachmentOutcomeCallable;
1574         typedef std::future<DeleteTransitGatewayPrefixListReferenceOutcome> DeleteTransitGatewayPrefixListReferenceOutcomeCallable;
1575         typedef std::future<DeleteTransitGatewayRouteOutcome> DeleteTransitGatewayRouteOutcomeCallable;
1576         typedef std::future<DeleteTransitGatewayRouteTableOutcome> DeleteTransitGatewayRouteTableOutcomeCallable;
1577         typedef std::future<DeleteTransitGatewayVpcAttachmentOutcome> DeleteTransitGatewayVpcAttachmentOutcomeCallable;
1578         typedef std::future<DeleteVolumeOutcome> DeleteVolumeOutcomeCallable;
1579         typedef std::future<DeleteVpcOutcome> DeleteVpcOutcomeCallable;
1580         typedef std::future<DeleteVpcEndpointConnectionNotificationsOutcome> DeleteVpcEndpointConnectionNotificationsOutcomeCallable;
1581         typedef std::future<DeleteVpcEndpointServiceConfigurationsOutcome> DeleteVpcEndpointServiceConfigurationsOutcomeCallable;
1582         typedef std::future<DeleteVpcEndpointsOutcome> DeleteVpcEndpointsOutcomeCallable;
1583         typedef std::future<DeleteVpcPeeringConnectionOutcome> DeleteVpcPeeringConnectionOutcomeCallable;
1584         typedef std::future<DeleteVpnConnectionOutcome> DeleteVpnConnectionOutcomeCallable;
1585         typedef std::future<DeleteVpnConnectionRouteOutcome> DeleteVpnConnectionRouteOutcomeCallable;
1586         typedef std::future<DeleteVpnGatewayOutcome> DeleteVpnGatewayOutcomeCallable;
1587         typedef std::future<DeprovisionByoipCidrOutcome> DeprovisionByoipCidrOutcomeCallable;
1588         typedef std::future<DeregisterImageOutcome> DeregisterImageOutcomeCallable;
1589         typedef std::future<DeregisterInstanceEventNotificationAttributesOutcome> DeregisterInstanceEventNotificationAttributesOutcomeCallable;
1590         typedef std::future<DeregisterTransitGatewayMulticastGroupMembersOutcome> DeregisterTransitGatewayMulticastGroupMembersOutcomeCallable;
1591         typedef std::future<DeregisterTransitGatewayMulticastGroupSourcesOutcome> DeregisterTransitGatewayMulticastGroupSourcesOutcomeCallable;
1592         typedef std::future<DescribeAccountAttributesOutcome> DescribeAccountAttributesOutcomeCallable;
1593         typedef std::future<DescribeAddressesOutcome> DescribeAddressesOutcomeCallable;
1594         typedef std::future<DescribeAddressesAttributeOutcome> DescribeAddressesAttributeOutcomeCallable;
1595         typedef std::future<DescribeAggregateIdFormatOutcome> DescribeAggregateIdFormatOutcomeCallable;
1596         typedef std::future<DescribeAvailabilityZonesOutcome> DescribeAvailabilityZonesOutcomeCallable;
1597         typedef std::future<DescribeBundleTasksOutcome> DescribeBundleTasksOutcomeCallable;
1598         typedef std::future<DescribeByoipCidrsOutcome> DescribeByoipCidrsOutcomeCallable;
1599         typedef std::future<DescribeCapacityReservationFleetsOutcome> DescribeCapacityReservationFleetsOutcomeCallable;
1600         typedef std::future<DescribeCapacityReservationsOutcome> DescribeCapacityReservationsOutcomeCallable;
1601         typedef std::future<DescribeCarrierGatewaysOutcome> DescribeCarrierGatewaysOutcomeCallable;
1602         typedef std::future<DescribeClassicLinkInstancesOutcome> DescribeClassicLinkInstancesOutcomeCallable;
1603         typedef std::future<DescribeClientVpnAuthorizationRulesOutcome> DescribeClientVpnAuthorizationRulesOutcomeCallable;
1604         typedef std::future<DescribeClientVpnConnectionsOutcome> DescribeClientVpnConnectionsOutcomeCallable;
1605         typedef std::future<DescribeClientVpnEndpointsOutcome> DescribeClientVpnEndpointsOutcomeCallable;
1606         typedef std::future<DescribeClientVpnRoutesOutcome> DescribeClientVpnRoutesOutcomeCallable;
1607         typedef std::future<DescribeClientVpnTargetNetworksOutcome> DescribeClientVpnTargetNetworksOutcomeCallable;
1608         typedef std::future<DescribeCoipPoolsOutcome> DescribeCoipPoolsOutcomeCallable;
1609         typedef std::future<DescribeConversionTasksOutcome> DescribeConversionTasksOutcomeCallable;
1610         typedef std::future<DescribeCustomerGatewaysOutcome> DescribeCustomerGatewaysOutcomeCallable;
1611         typedef std::future<DescribeDhcpOptionsOutcome> DescribeDhcpOptionsOutcomeCallable;
1612         typedef std::future<DescribeEgressOnlyInternetGatewaysOutcome> DescribeEgressOnlyInternetGatewaysOutcomeCallable;
1613         typedef std::future<DescribeElasticGpusOutcome> DescribeElasticGpusOutcomeCallable;
1614         typedef std::future<DescribeExportImageTasksOutcome> DescribeExportImageTasksOutcomeCallable;
1615         typedef std::future<DescribeExportTasksOutcome> DescribeExportTasksOutcomeCallable;
1616         typedef std::future<DescribeFastSnapshotRestoresOutcome> DescribeFastSnapshotRestoresOutcomeCallable;
1617         typedef std::future<DescribeFleetHistoryOutcome> DescribeFleetHistoryOutcomeCallable;
1618         typedef std::future<DescribeFleetInstancesOutcome> DescribeFleetInstancesOutcomeCallable;
1619         typedef std::future<DescribeFleetsOutcome> DescribeFleetsOutcomeCallable;
1620         typedef std::future<DescribeFlowLogsOutcome> DescribeFlowLogsOutcomeCallable;
1621         typedef std::future<DescribeFpgaImageAttributeOutcome> DescribeFpgaImageAttributeOutcomeCallable;
1622         typedef std::future<DescribeFpgaImagesOutcome> DescribeFpgaImagesOutcomeCallable;
1623         typedef std::future<DescribeHostReservationOfferingsOutcome> DescribeHostReservationOfferingsOutcomeCallable;
1624         typedef std::future<DescribeHostReservationsOutcome> DescribeHostReservationsOutcomeCallable;
1625         typedef std::future<DescribeHostsOutcome> DescribeHostsOutcomeCallable;
1626         typedef std::future<DescribeIamInstanceProfileAssociationsOutcome> DescribeIamInstanceProfileAssociationsOutcomeCallable;
1627         typedef std::future<DescribeIdFormatOutcome> DescribeIdFormatOutcomeCallable;
1628         typedef std::future<DescribeIdentityIdFormatOutcome> DescribeIdentityIdFormatOutcomeCallable;
1629         typedef std::future<DescribeImageAttributeOutcome> DescribeImageAttributeOutcomeCallable;
1630         typedef std::future<DescribeImagesOutcome> DescribeImagesOutcomeCallable;
1631         typedef std::future<DescribeImportImageTasksOutcome> DescribeImportImageTasksOutcomeCallable;
1632         typedef std::future<DescribeImportSnapshotTasksOutcome> DescribeImportSnapshotTasksOutcomeCallable;
1633         typedef std::future<DescribeInstanceAttributeOutcome> DescribeInstanceAttributeOutcomeCallable;
1634         typedef std::future<DescribeInstanceCreditSpecificationsOutcome> DescribeInstanceCreditSpecificationsOutcomeCallable;
1635         typedef std::future<DescribeInstanceEventNotificationAttributesOutcome> DescribeInstanceEventNotificationAttributesOutcomeCallable;
1636         typedef std::future<DescribeInstanceEventWindowsOutcome> DescribeInstanceEventWindowsOutcomeCallable;
1637         typedef std::future<DescribeInstanceStatusOutcome> DescribeInstanceStatusOutcomeCallable;
1638         typedef std::future<DescribeInstanceTypeOfferingsOutcome> DescribeInstanceTypeOfferingsOutcomeCallable;
1639         typedef std::future<DescribeInstanceTypesOutcome> DescribeInstanceTypesOutcomeCallable;
1640         typedef std::future<DescribeInstancesOutcome> DescribeInstancesOutcomeCallable;
1641         typedef std::future<DescribeInternetGatewaysOutcome> DescribeInternetGatewaysOutcomeCallable;
1642         typedef std::future<DescribeIpv6PoolsOutcome> DescribeIpv6PoolsOutcomeCallable;
1643         typedef std::future<DescribeKeyPairsOutcome> DescribeKeyPairsOutcomeCallable;
1644         typedef std::future<DescribeLaunchTemplateVersionsOutcome> DescribeLaunchTemplateVersionsOutcomeCallable;
1645         typedef std::future<DescribeLaunchTemplatesOutcome> DescribeLaunchTemplatesOutcomeCallable;
1646         typedef std::future<DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsOutcome> DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsOutcomeCallable;
1647         typedef std::future<DescribeLocalGatewayRouteTableVpcAssociationsOutcome> DescribeLocalGatewayRouteTableVpcAssociationsOutcomeCallable;
1648         typedef std::future<DescribeLocalGatewayRouteTablesOutcome> DescribeLocalGatewayRouteTablesOutcomeCallable;
1649         typedef std::future<DescribeLocalGatewayVirtualInterfaceGroupsOutcome> DescribeLocalGatewayVirtualInterfaceGroupsOutcomeCallable;
1650         typedef std::future<DescribeLocalGatewayVirtualInterfacesOutcome> DescribeLocalGatewayVirtualInterfacesOutcomeCallable;
1651         typedef std::future<DescribeLocalGatewaysOutcome> DescribeLocalGatewaysOutcomeCallable;
1652         typedef std::future<DescribeManagedPrefixListsOutcome> DescribeManagedPrefixListsOutcomeCallable;
1653         typedef std::future<DescribeMovingAddressesOutcome> DescribeMovingAddressesOutcomeCallable;
1654         typedef std::future<DescribeNatGatewaysOutcome> DescribeNatGatewaysOutcomeCallable;
1655         typedef std::future<DescribeNetworkAclsOutcome> DescribeNetworkAclsOutcomeCallable;
1656         typedef std::future<DescribeNetworkInsightsAnalysesOutcome> DescribeNetworkInsightsAnalysesOutcomeCallable;
1657         typedef std::future<DescribeNetworkInsightsPathsOutcome> DescribeNetworkInsightsPathsOutcomeCallable;
1658         typedef std::future<DescribeNetworkInterfaceAttributeOutcome> DescribeNetworkInterfaceAttributeOutcomeCallable;
1659         typedef std::future<DescribeNetworkInterfacePermissionsOutcome> DescribeNetworkInterfacePermissionsOutcomeCallable;
1660         typedef std::future<DescribeNetworkInterfacesOutcome> DescribeNetworkInterfacesOutcomeCallable;
1661         typedef std::future<DescribePlacementGroupsOutcome> DescribePlacementGroupsOutcomeCallable;
1662         typedef std::future<DescribePrefixListsOutcome> DescribePrefixListsOutcomeCallable;
1663         typedef std::future<DescribePrincipalIdFormatOutcome> DescribePrincipalIdFormatOutcomeCallable;
1664         typedef std::future<DescribePublicIpv4PoolsOutcome> DescribePublicIpv4PoolsOutcomeCallable;
1665         typedef std::future<DescribeRegionsOutcome> DescribeRegionsOutcomeCallable;
1666         typedef std::future<DescribeReplaceRootVolumeTasksOutcome> DescribeReplaceRootVolumeTasksOutcomeCallable;
1667         typedef std::future<DescribeReservedInstancesOutcome> DescribeReservedInstancesOutcomeCallable;
1668         typedef std::future<DescribeReservedInstancesListingsOutcome> DescribeReservedInstancesListingsOutcomeCallable;
1669         typedef std::future<DescribeReservedInstancesModificationsOutcome> DescribeReservedInstancesModificationsOutcomeCallable;
1670         typedef std::future<DescribeReservedInstancesOfferingsOutcome> DescribeReservedInstancesOfferingsOutcomeCallable;
1671         typedef std::future<DescribeRouteTablesOutcome> DescribeRouteTablesOutcomeCallable;
1672         typedef std::future<DescribeScheduledInstanceAvailabilityOutcome> DescribeScheduledInstanceAvailabilityOutcomeCallable;
1673         typedef std::future<DescribeScheduledInstancesOutcome> DescribeScheduledInstancesOutcomeCallable;
1674         typedef std::future<DescribeSecurityGroupReferencesOutcome> DescribeSecurityGroupReferencesOutcomeCallable;
1675         typedef std::future<DescribeSecurityGroupRulesOutcome> DescribeSecurityGroupRulesOutcomeCallable;
1676         typedef std::future<DescribeSecurityGroupsOutcome> DescribeSecurityGroupsOutcomeCallable;
1677         typedef std::future<DescribeSnapshotAttributeOutcome> DescribeSnapshotAttributeOutcomeCallable;
1678         typedef std::future<DescribeSnapshotsOutcome> DescribeSnapshotsOutcomeCallable;
1679         typedef std::future<DescribeSpotDatafeedSubscriptionOutcome> DescribeSpotDatafeedSubscriptionOutcomeCallable;
1680         typedef std::future<DescribeSpotFleetInstancesOutcome> DescribeSpotFleetInstancesOutcomeCallable;
1681         typedef std::future<DescribeSpotFleetRequestHistoryOutcome> DescribeSpotFleetRequestHistoryOutcomeCallable;
1682         typedef std::future<DescribeSpotFleetRequestsOutcome> DescribeSpotFleetRequestsOutcomeCallable;
1683         typedef std::future<DescribeSpotInstanceRequestsOutcome> DescribeSpotInstanceRequestsOutcomeCallable;
1684         typedef std::future<DescribeSpotPriceHistoryOutcome> DescribeSpotPriceHistoryOutcomeCallable;
1685         typedef std::future<DescribeStaleSecurityGroupsOutcome> DescribeStaleSecurityGroupsOutcomeCallable;
1686         typedef std::future<DescribeStoreImageTasksOutcome> DescribeStoreImageTasksOutcomeCallable;
1687         typedef std::future<DescribeSubnetsOutcome> DescribeSubnetsOutcomeCallable;
1688         typedef std::future<DescribeTagsOutcome> DescribeTagsOutcomeCallable;
1689         typedef std::future<DescribeTrafficMirrorFiltersOutcome> DescribeTrafficMirrorFiltersOutcomeCallable;
1690         typedef std::future<DescribeTrafficMirrorSessionsOutcome> DescribeTrafficMirrorSessionsOutcomeCallable;
1691         typedef std::future<DescribeTrafficMirrorTargetsOutcome> DescribeTrafficMirrorTargetsOutcomeCallable;
1692         typedef std::future<DescribeTransitGatewayAttachmentsOutcome> DescribeTransitGatewayAttachmentsOutcomeCallable;
1693         typedef std::future<DescribeTransitGatewayConnectPeersOutcome> DescribeTransitGatewayConnectPeersOutcomeCallable;
1694         typedef std::future<DescribeTransitGatewayConnectsOutcome> DescribeTransitGatewayConnectsOutcomeCallable;
1695         typedef std::future<DescribeTransitGatewayMulticastDomainsOutcome> DescribeTransitGatewayMulticastDomainsOutcomeCallable;
1696         typedef std::future<DescribeTransitGatewayPeeringAttachmentsOutcome> DescribeTransitGatewayPeeringAttachmentsOutcomeCallable;
1697         typedef std::future<DescribeTransitGatewayRouteTablesOutcome> DescribeTransitGatewayRouteTablesOutcomeCallable;
1698         typedef std::future<DescribeTransitGatewayVpcAttachmentsOutcome> DescribeTransitGatewayVpcAttachmentsOutcomeCallable;
1699         typedef std::future<DescribeTransitGatewaysOutcome> DescribeTransitGatewaysOutcomeCallable;
1700         typedef std::future<DescribeTrunkInterfaceAssociationsOutcome> DescribeTrunkInterfaceAssociationsOutcomeCallable;
1701         typedef std::future<DescribeVolumeAttributeOutcome> DescribeVolumeAttributeOutcomeCallable;
1702         typedef std::future<DescribeVolumeStatusOutcome> DescribeVolumeStatusOutcomeCallable;
1703         typedef std::future<DescribeVolumesOutcome> DescribeVolumesOutcomeCallable;
1704         typedef std::future<DescribeVolumesModificationsOutcome> DescribeVolumesModificationsOutcomeCallable;
1705         typedef std::future<DescribeVpcAttributeOutcome> DescribeVpcAttributeOutcomeCallable;
1706         typedef std::future<DescribeVpcClassicLinkOutcome> DescribeVpcClassicLinkOutcomeCallable;
1707         typedef std::future<DescribeVpcClassicLinkDnsSupportOutcome> DescribeVpcClassicLinkDnsSupportOutcomeCallable;
1708         typedef std::future<DescribeVpcEndpointConnectionNotificationsOutcome> DescribeVpcEndpointConnectionNotificationsOutcomeCallable;
1709         typedef std::future<DescribeVpcEndpointConnectionsOutcome> DescribeVpcEndpointConnectionsOutcomeCallable;
1710         typedef std::future<DescribeVpcEndpointServiceConfigurationsOutcome> DescribeVpcEndpointServiceConfigurationsOutcomeCallable;
1711         typedef std::future<DescribeVpcEndpointServicePermissionsOutcome> DescribeVpcEndpointServicePermissionsOutcomeCallable;
1712         typedef std::future<DescribeVpcEndpointServicesOutcome> DescribeVpcEndpointServicesOutcomeCallable;
1713         typedef std::future<DescribeVpcEndpointsOutcome> DescribeVpcEndpointsOutcomeCallable;
1714         typedef std::future<DescribeVpcPeeringConnectionsOutcome> DescribeVpcPeeringConnectionsOutcomeCallable;
1715         typedef std::future<DescribeVpcsOutcome> DescribeVpcsOutcomeCallable;
1716         typedef std::future<DescribeVpnConnectionsOutcome> DescribeVpnConnectionsOutcomeCallable;
1717         typedef std::future<DescribeVpnGatewaysOutcome> DescribeVpnGatewaysOutcomeCallable;
1718         typedef std::future<DetachClassicLinkVpcOutcome> DetachClassicLinkVpcOutcomeCallable;
1719         typedef std::future<DetachInternetGatewayOutcome> DetachInternetGatewayOutcomeCallable;
1720         typedef std::future<DetachNetworkInterfaceOutcome> DetachNetworkInterfaceOutcomeCallable;
1721         typedef std::future<DetachVolumeOutcome> DetachVolumeOutcomeCallable;
1722         typedef std::future<DetachVpnGatewayOutcome> DetachVpnGatewayOutcomeCallable;
1723         typedef std::future<DisableEbsEncryptionByDefaultOutcome> DisableEbsEncryptionByDefaultOutcomeCallable;
1724         typedef std::future<DisableFastSnapshotRestoresOutcome> DisableFastSnapshotRestoresOutcomeCallable;
1725         typedef std::future<DisableImageDeprecationOutcome> DisableImageDeprecationOutcomeCallable;
1726         typedef std::future<DisableSerialConsoleAccessOutcome> DisableSerialConsoleAccessOutcomeCallable;
1727         typedef std::future<DisableTransitGatewayRouteTablePropagationOutcome> DisableTransitGatewayRouteTablePropagationOutcomeCallable;
1728         typedef std::future<DisableVgwRoutePropagationOutcome> DisableVgwRoutePropagationOutcomeCallable;
1729         typedef std::future<DisableVpcClassicLinkOutcome> DisableVpcClassicLinkOutcomeCallable;
1730         typedef std::future<DisableVpcClassicLinkDnsSupportOutcome> DisableVpcClassicLinkDnsSupportOutcomeCallable;
1731         typedef std::future<DisassociateAddressOutcome> DisassociateAddressOutcomeCallable;
1732         typedef std::future<DisassociateClientVpnTargetNetworkOutcome> DisassociateClientVpnTargetNetworkOutcomeCallable;
1733         typedef std::future<DisassociateEnclaveCertificateIamRoleOutcome> DisassociateEnclaveCertificateIamRoleOutcomeCallable;
1734         typedef std::future<DisassociateIamInstanceProfileOutcome> DisassociateIamInstanceProfileOutcomeCallable;
1735         typedef std::future<DisassociateInstanceEventWindowOutcome> DisassociateInstanceEventWindowOutcomeCallable;
1736         typedef std::future<DisassociateRouteTableOutcome> DisassociateRouteTableOutcomeCallable;
1737         typedef std::future<DisassociateSubnetCidrBlockOutcome> DisassociateSubnetCidrBlockOutcomeCallable;
1738         typedef std::future<DisassociateTransitGatewayMulticastDomainOutcome> DisassociateTransitGatewayMulticastDomainOutcomeCallable;
1739         typedef std::future<DisassociateTransitGatewayRouteTableOutcome> DisassociateTransitGatewayRouteTableOutcomeCallable;
1740         typedef std::future<DisassociateTrunkInterfaceOutcome> DisassociateTrunkInterfaceOutcomeCallable;
1741         typedef std::future<DisassociateVpcCidrBlockOutcome> DisassociateVpcCidrBlockOutcomeCallable;
1742         typedef std::future<EnableEbsEncryptionByDefaultOutcome> EnableEbsEncryptionByDefaultOutcomeCallable;
1743         typedef std::future<EnableFastSnapshotRestoresOutcome> EnableFastSnapshotRestoresOutcomeCallable;
1744         typedef std::future<EnableImageDeprecationOutcome> EnableImageDeprecationOutcomeCallable;
1745         typedef std::future<EnableSerialConsoleAccessOutcome> EnableSerialConsoleAccessOutcomeCallable;
1746         typedef std::future<EnableTransitGatewayRouteTablePropagationOutcome> EnableTransitGatewayRouteTablePropagationOutcomeCallable;
1747         typedef std::future<EnableVgwRoutePropagationOutcome> EnableVgwRoutePropagationOutcomeCallable;
1748         typedef std::future<EnableVolumeIOOutcome> EnableVolumeIOOutcomeCallable;
1749         typedef std::future<EnableVpcClassicLinkOutcome> EnableVpcClassicLinkOutcomeCallable;
1750         typedef std::future<EnableVpcClassicLinkDnsSupportOutcome> EnableVpcClassicLinkDnsSupportOutcomeCallable;
1751         typedef std::future<ExportClientVpnClientCertificateRevocationListOutcome> ExportClientVpnClientCertificateRevocationListOutcomeCallable;
1752         typedef std::future<ExportClientVpnClientConfigurationOutcome> ExportClientVpnClientConfigurationOutcomeCallable;
1753         typedef std::future<ExportImageOutcome> ExportImageOutcomeCallable;
1754         typedef std::future<ExportTransitGatewayRoutesOutcome> ExportTransitGatewayRoutesOutcomeCallable;
1755         typedef std::future<GetAssociatedEnclaveCertificateIamRolesOutcome> GetAssociatedEnclaveCertificateIamRolesOutcomeCallable;
1756         typedef std::future<GetAssociatedIpv6PoolCidrsOutcome> GetAssociatedIpv6PoolCidrsOutcomeCallable;
1757         typedef std::future<GetCapacityReservationUsageOutcome> GetCapacityReservationUsageOutcomeCallable;
1758         typedef std::future<GetCoipPoolUsageOutcome> GetCoipPoolUsageOutcomeCallable;
1759         typedef std::future<GetConsoleOutputOutcome> GetConsoleOutputOutcomeCallable;
1760         typedef std::future<GetConsoleScreenshotOutcome> GetConsoleScreenshotOutcomeCallable;
1761         typedef std::future<GetDefaultCreditSpecificationOutcome> GetDefaultCreditSpecificationOutcomeCallable;
1762         typedef std::future<GetEbsDefaultKmsKeyIdOutcome> GetEbsDefaultKmsKeyIdOutcomeCallable;
1763         typedef std::future<GetEbsEncryptionByDefaultOutcome> GetEbsEncryptionByDefaultOutcomeCallable;
1764         typedef std::future<GetFlowLogsIntegrationTemplateOutcome> GetFlowLogsIntegrationTemplateOutcomeCallable;
1765         typedef std::future<GetGroupsForCapacityReservationOutcome> GetGroupsForCapacityReservationOutcomeCallable;
1766         typedef std::future<GetHostReservationPurchasePreviewOutcome> GetHostReservationPurchasePreviewOutcomeCallable;
1767         typedef std::future<GetLaunchTemplateDataOutcome> GetLaunchTemplateDataOutcomeCallable;
1768         typedef std::future<GetManagedPrefixListAssociationsOutcome> GetManagedPrefixListAssociationsOutcomeCallable;
1769         typedef std::future<GetManagedPrefixListEntriesOutcome> GetManagedPrefixListEntriesOutcomeCallable;
1770         typedef std::future<GetPasswordDataOutcome> GetPasswordDataOutcomeCallable;
1771         typedef std::future<GetReservedInstancesExchangeQuoteOutcome> GetReservedInstancesExchangeQuoteOutcomeCallable;
1772         typedef std::future<GetSerialConsoleAccessStatusOutcome> GetSerialConsoleAccessStatusOutcomeCallable;
1773         typedef std::future<GetSubnetCidrReservationsOutcome> GetSubnetCidrReservationsOutcomeCallable;
1774         typedef std::future<GetTransitGatewayAttachmentPropagationsOutcome> GetTransitGatewayAttachmentPropagationsOutcomeCallable;
1775         typedef std::future<GetTransitGatewayMulticastDomainAssociationsOutcome> GetTransitGatewayMulticastDomainAssociationsOutcomeCallable;
1776         typedef std::future<GetTransitGatewayPrefixListReferencesOutcome> GetTransitGatewayPrefixListReferencesOutcomeCallable;
1777         typedef std::future<GetTransitGatewayRouteTableAssociationsOutcome> GetTransitGatewayRouteTableAssociationsOutcomeCallable;
1778         typedef std::future<GetTransitGatewayRouteTablePropagationsOutcome> GetTransitGatewayRouteTablePropagationsOutcomeCallable;
1779         typedef std::future<GetVpnConnectionDeviceSampleConfigurationOutcome> GetVpnConnectionDeviceSampleConfigurationOutcomeCallable;
1780         typedef std::future<GetVpnConnectionDeviceTypesOutcome> GetVpnConnectionDeviceTypesOutcomeCallable;
1781         typedef std::future<ImportClientVpnClientCertificateRevocationListOutcome> ImportClientVpnClientCertificateRevocationListOutcomeCallable;
1782         typedef std::future<ImportImageOutcome> ImportImageOutcomeCallable;
1783         typedef std::future<ImportInstanceOutcome> ImportInstanceOutcomeCallable;
1784         typedef std::future<ImportKeyPairOutcome> ImportKeyPairOutcomeCallable;
1785         typedef std::future<ImportSnapshotOutcome> ImportSnapshotOutcomeCallable;
1786         typedef std::future<ImportVolumeOutcome> ImportVolumeOutcomeCallable;
1787         typedef std::future<ModifyAddressAttributeOutcome> ModifyAddressAttributeOutcomeCallable;
1788         typedef std::future<ModifyAvailabilityZoneGroupOutcome> ModifyAvailabilityZoneGroupOutcomeCallable;
1789         typedef std::future<ModifyCapacityReservationOutcome> ModifyCapacityReservationOutcomeCallable;
1790         typedef std::future<ModifyCapacityReservationFleetOutcome> ModifyCapacityReservationFleetOutcomeCallable;
1791         typedef std::future<ModifyClientVpnEndpointOutcome> ModifyClientVpnEndpointOutcomeCallable;
1792         typedef std::future<ModifyDefaultCreditSpecificationOutcome> ModifyDefaultCreditSpecificationOutcomeCallable;
1793         typedef std::future<ModifyEbsDefaultKmsKeyIdOutcome> ModifyEbsDefaultKmsKeyIdOutcomeCallable;
1794         typedef std::future<ModifyFleetOutcome> ModifyFleetOutcomeCallable;
1795         typedef std::future<ModifyFpgaImageAttributeOutcome> ModifyFpgaImageAttributeOutcomeCallable;
1796         typedef std::future<ModifyHostsOutcome> ModifyHostsOutcomeCallable;
1797         typedef std::future<ModifyIdFormatOutcome> ModifyIdFormatOutcomeCallable;
1798         typedef std::future<ModifyIdentityIdFormatOutcome> ModifyIdentityIdFormatOutcomeCallable;
1799         typedef std::future<ModifyImageAttributeOutcome> ModifyImageAttributeOutcomeCallable;
1800         typedef std::future<ModifyInstanceAttributeOutcome> ModifyInstanceAttributeOutcomeCallable;
1801         typedef std::future<ModifyInstanceCapacityReservationAttributesOutcome> ModifyInstanceCapacityReservationAttributesOutcomeCallable;
1802         typedef std::future<ModifyInstanceCreditSpecificationOutcome> ModifyInstanceCreditSpecificationOutcomeCallable;
1803         typedef std::future<ModifyInstanceEventStartTimeOutcome> ModifyInstanceEventStartTimeOutcomeCallable;
1804         typedef std::future<ModifyInstanceEventWindowOutcome> ModifyInstanceEventWindowOutcomeCallable;
1805         typedef std::future<ModifyInstanceMetadataOptionsOutcome> ModifyInstanceMetadataOptionsOutcomeCallable;
1806         typedef std::future<ModifyInstancePlacementOutcome> ModifyInstancePlacementOutcomeCallable;
1807         typedef std::future<ModifyLaunchTemplateOutcome> ModifyLaunchTemplateOutcomeCallable;
1808         typedef std::future<ModifyManagedPrefixListOutcome> ModifyManagedPrefixListOutcomeCallable;
1809         typedef std::future<ModifyNetworkInterfaceAttributeOutcome> ModifyNetworkInterfaceAttributeOutcomeCallable;
1810         typedef std::future<ModifyReservedInstancesOutcome> ModifyReservedInstancesOutcomeCallable;
1811         typedef std::future<ModifySecurityGroupRulesOutcome> ModifySecurityGroupRulesOutcomeCallable;
1812         typedef std::future<ModifySnapshotAttributeOutcome> ModifySnapshotAttributeOutcomeCallable;
1813         typedef std::future<ModifySpotFleetRequestOutcome> ModifySpotFleetRequestOutcomeCallable;
1814         typedef std::future<ModifySubnetAttributeOutcome> ModifySubnetAttributeOutcomeCallable;
1815         typedef std::future<ModifyTrafficMirrorFilterNetworkServicesOutcome> ModifyTrafficMirrorFilterNetworkServicesOutcomeCallable;
1816         typedef std::future<ModifyTrafficMirrorFilterRuleOutcome> ModifyTrafficMirrorFilterRuleOutcomeCallable;
1817         typedef std::future<ModifyTrafficMirrorSessionOutcome> ModifyTrafficMirrorSessionOutcomeCallable;
1818         typedef std::future<ModifyTransitGatewayOutcome> ModifyTransitGatewayOutcomeCallable;
1819         typedef std::future<ModifyTransitGatewayPrefixListReferenceOutcome> ModifyTransitGatewayPrefixListReferenceOutcomeCallable;
1820         typedef std::future<ModifyTransitGatewayVpcAttachmentOutcome> ModifyTransitGatewayVpcAttachmentOutcomeCallable;
1821         typedef std::future<ModifyVolumeOutcome> ModifyVolumeOutcomeCallable;
1822         typedef std::future<ModifyVolumeAttributeOutcome> ModifyVolumeAttributeOutcomeCallable;
1823         typedef std::future<ModifyVpcAttributeOutcome> ModifyVpcAttributeOutcomeCallable;
1824         typedef std::future<ModifyVpcEndpointOutcome> ModifyVpcEndpointOutcomeCallable;
1825         typedef std::future<ModifyVpcEndpointConnectionNotificationOutcome> ModifyVpcEndpointConnectionNotificationOutcomeCallable;
1826         typedef std::future<ModifyVpcEndpointServiceConfigurationOutcome> ModifyVpcEndpointServiceConfigurationOutcomeCallable;
1827         typedef std::future<ModifyVpcEndpointServicePermissionsOutcome> ModifyVpcEndpointServicePermissionsOutcomeCallable;
1828         typedef std::future<ModifyVpcPeeringConnectionOptionsOutcome> ModifyVpcPeeringConnectionOptionsOutcomeCallable;
1829         typedef std::future<ModifyVpcTenancyOutcome> ModifyVpcTenancyOutcomeCallable;
1830         typedef std::future<ModifyVpnConnectionOutcome> ModifyVpnConnectionOutcomeCallable;
1831         typedef std::future<ModifyVpnConnectionOptionsOutcome> ModifyVpnConnectionOptionsOutcomeCallable;
1832         typedef std::future<ModifyVpnTunnelCertificateOutcome> ModifyVpnTunnelCertificateOutcomeCallable;
1833         typedef std::future<ModifyVpnTunnelOptionsOutcome> ModifyVpnTunnelOptionsOutcomeCallable;
1834         typedef std::future<MonitorInstancesOutcome> MonitorInstancesOutcomeCallable;
1835         typedef std::future<MoveAddressToVpcOutcome> MoveAddressToVpcOutcomeCallable;
1836         typedef std::future<ProvisionByoipCidrOutcome> ProvisionByoipCidrOutcomeCallable;
1837         typedef std::future<PurchaseHostReservationOutcome> PurchaseHostReservationOutcomeCallable;
1838         typedef std::future<PurchaseReservedInstancesOfferingOutcome> PurchaseReservedInstancesOfferingOutcomeCallable;
1839         typedef std::future<PurchaseScheduledInstancesOutcome> PurchaseScheduledInstancesOutcomeCallable;
1840         typedef std::future<RebootInstancesOutcome> RebootInstancesOutcomeCallable;
1841         typedef std::future<RegisterImageOutcome> RegisterImageOutcomeCallable;
1842         typedef std::future<RegisterInstanceEventNotificationAttributesOutcome> RegisterInstanceEventNotificationAttributesOutcomeCallable;
1843         typedef std::future<RegisterTransitGatewayMulticastGroupMembersOutcome> RegisterTransitGatewayMulticastGroupMembersOutcomeCallable;
1844         typedef std::future<RegisterTransitGatewayMulticastGroupSourcesOutcome> RegisterTransitGatewayMulticastGroupSourcesOutcomeCallable;
1845         typedef std::future<RejectTransitGatewayMulticastDomainAssociationsOutcome> RejectTransitGatewayMulticastDomainAssociationsOutcomeCallable;
1846         typedef std::future<RejectTransitGatewayPeeringAttachmentOutcome> RejectTransitGatewayPeeringAttachmentOutcomeCallable;
1847         typedef std::future<RejectTransitGatewayVpcAttachmentOutcome> RejectTransitGatewayVpcAttachmentOutcomeCallable;
1848         typedef std::future<RejectVpcEndpointConnectionsOutcome> RejectVpcEndpointConnectionsOutcomeCallable;
1849         typedef std::future<RejectVpcPeeringConnectionOutcome> RejectVpcPeeringConnectionOutcomeCallable;
1850         typedef std::future<ReleaseAddressOutcome> ReleaseAddressOutcomeCallable;
1851         typedef std::future<ReleaseHostsOutcome> ReleaseHostsOutcomeCallable;
1852         typedef std::future<ReplaceIamInstanceProfileAssociationOutcome> ReplaceIamInstanceProfileAssociationOutcomeCallable;
1853         typedef std::future<ReplaceNetworkAclAssociationOutcome> ReplaceNetworkAclAssociationOutcomeCallable;
1854         typedef std::future<ReplaceNetworkAclEntryOutcome> ReplaceNetworkAclEntryOutcomeCallable;
1855         typedef std::future<ReplaceRouteOutcome> ReplaceRouteOutcomeCallable;
1856         typedef std::future<ReplaceRouteTableAssociationOutcome> ReplaceRouteTableAssociationOutcomeCallable;
1857         typedef std::future<ReplaceTransitGatewayRouteOutcome> ReplaceTransitGatewayRouteOutcomeCallable;
1858         typedef std::future<ReportInstanceStatusOutcome> ReportInstanceStatusOutcomeCallable;
1859         typedef std::future<RequestSpotFleetOutcome> RequestSpotFleetOutcomeCallable;
1860         typedef std::future<RequestSpotInstancesOutcome> RequestSpotInstancesOutcomeCallable;
1861         typedef std::future<ResetAddressAttributeOutcome> ResetAddressAttributeOutcomeCallable;
1862         typedef std::future<ResetEbsDefaultKmsKeyIdOutcome> ResetEbsDefaultKmsKeyIdOutcomeCallable;
1863         typedef std::future<ResetFpgaImageAttributeOutcome> ResetFpgaImageAttributeOutcomeCallable;
1864         typedef std::future<ResetImageAttributeOutcome> ResetImageAttributeOutcomeCallable;
1865         typedef std::future<ResetInstanceAttributeOutcome> ResetInstanceAttributeOutcomeCallable;
1866         typedef std::future<ResetNetworkInterfaceAttributeOutcome> ResetNetworkInterfaceAttributeOutcomeCallable;
1867         typedef std::future<ResetSnapshotAttributeOutcome> ResetSnapshotAttributeOutcomeCallable;
1868         typedef std::future<RestoreAddressToClassicOutcome> RestoreAddressToClassicOutcomeCallable;
1869         typedef std::future<RestoreManagedPrefixListVersionOutcome> RestoreManagedPrefixListVersionOutcomeCallable;
1870         typedef std::future<RevokeClientVpnIngressOutcome> RevokeClientVpnIngressOutcomeCallable;
1871         typedef std::future<RevokeSecurityGroupEgressOutcome> RevokeSecurityGroupEgressOutcomeCallable;
1872         typedef std::future<RevokeSecurityGroupIngressOutcome> RevokeSecurityGroupIngressOutcomeCallable;
1873         typedef std::future<RunInstancesOutcome> RunInstancesOutcomeCallable;
1874         typedef std::future<RunScheduledInstancesOutcome> RunScheduledInstancesOutcomeCallable;
1875         typedef std::future<SearchLocalGatewayRoutesOutcome> SearchLocalGatewayRoutesOutcomeCallable;
1876         typedef std::future<SearchTransitGatewayMulticastGroupsOutcome> SearchTransitGatewayMulticastGroupsOutcomeCallable;
1877         typedef std::future<SearchTransitGatewayRoutesOutcome> SearchTransitGatewayRoutesOutcomeCallable;
1878         typedef std::future<SendDiagnosticInterruptOutcome> SendDiagnosticInterruptOutcomeCallable;
1879         typedef std::future<StartInstancesOutcome> StartInstancesOutcomeCallable;
1880         typedef std::future<StartNetworkInsightsAnalysisOutcome> StartNetworkInsightsAnalysisOutcomeCallable;
1881         typedef std::future<StartVpcEndpointServicePrivateDnsVerificationOutcome> StartVpcEndpointServicePrivateDnsVerificationOutcomeCallable;
1882         typedef std::future<StopInstancesOutcome> StopInstancesOutcomeCallable;
1883         typedef std::future<TerminateClientVpnConnectionsOutcome> TerminateClientVpnConnectionsOutcomeCallable;
1884         typedef std::future<TerminateInstancesOutcome> TerminateInstancesOutcomeCallable;
1885         typedef std::future<UnassignIpv6AddressesOutcome> UnassignIpv6AddressesOutcomeCallable;
1886         typedef std::future<UnassignPrivateIpAddressesOutcome> UnassignPrivateIpAddressesOutcomeCallable;
1887         typedef std::future<UnmonitorInstancesOutcome> UnmonitorInstancesOutcomeCallable;
1888         typedef std::future<UpdateSecurityGroupRuleDescriptionsEgressOutcome> UpdateSecurityGroupRuleDescriptionsEgressOutcomeCallable;
1889         typedef std::future<UpdateSecurityGroupRuleDescriptionsIngressOutcome> UpdateSecurityGroupRuleDescriptionsIngressOutcomeCallable;
1890         typedef std::future<WithdrawByoipCidrOutcome> WithdrawByoipCidrOutcomeCallable;
1891 } // namespace Model
1892 
1893   class EC2Client;
1894 
1895     typedef std::function<void(const EC2Client*, const Model::AcceptReservedInstancesExchangeQuoteRequest&, const Model::AcceptReservedInstancesExchangeQuoteOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > AcceptReservedInstancesExchangeQuoteResponseReceivedHandler;
1896     typedef std::function<void(const EC2Client*, const Model::AcceptTransitGatewayMulticastDomainAssociationsRequest&, const Model::AcceptTransitGatewayMulticastDomainAssociationsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > AcceptTransitGatewayMulticastDomainAssociationsResponseReceivedHandler;
1897     typedef std::function<void(const EC2Client*, const Model::AcceptTransitGatewayPeeringAttachmentRequest&, const Model::AcceptTransitGatewayPeeringAttachmentOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > AcceptTransitGatewayPeeringAttachmentResponseReceivedHandler;
1898     typedef std::function<void(const EC2Client*, const Model::AcceptTransitGatewayVpcAttachmentRequest&, const Model::AcceptTransitGatewayVpcAttachmentOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > AcceptTransitGatewayVpcAttachmentResponseReceivedHandler;
1899     typedef std::function<void(const EC2Client*, const Model::AcceptVpcEndpointConnectionsRequest&, const Model::AcceptVpcEndpointConnectionsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > AcceptVpcEndpointConnectionsResponseReceivedHandler;
1900     typedef std::function<void(const EC2Client*, const Model::AcceptVpcPeeringConnectionRequest&, const Model::AcceptVpcPeeringConnectionOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > AcceptVpcPeeringConnectionResponseReceivedHandler;
1901     typedef std::function<void(const EC2Client*, const Model::AdvertiseByoipCidrRequest&, const Model::AdvertiseByoipCidrOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > AdvertiseByoipCidrResponseReceivedHandler;
1902     typedef std::function<void(const EC2Client*, const Model::AllocateAddressRequest&, const Model::AllocateAddressOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > AllocateAddressResponseReceivedHandler;
1903     typedef std::function<void(const EC2Client*, const Model::AllocateHostsRequest&, const Model::AllocateHostsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > AllocateHostsResponseReceivedHandler;
1904     typedef std::function<void(const EC2Client*, const Model::ApplySecurityGroupsToClientVpnTargetNetworkRequest&, const Model::ApplySecurityGroupsToClientVpnTargetNetworkOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ApplySecurityGroupsToClientVpnTargetNetworkResponseReceivedHandler;
1905     typedef std::function<void(const EC2Client*, const Model::AssignIpv6AddressesRequest&, const Model::AssignIpv6AddressesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > AssignIpv6AddressesResponseReceivedHandler;
1906     typedef std::function<void(const EC2Client*, const Model::AssignPrivateIpAddressesRequest&, const Model::AssignPrivateIpAddressesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > AssignPrivateIpAddressesResponseReceivedHandler;
1907     typedef std::function<void(const EC2Client*, const Model::AssociateAddressRequest&, const Model::AssociateAddressOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > AssociateAddressResponseReceivedHandler;
1908     typedef std::function<void(const EC2Client*, const Model::AssociateClientVpnTargetNetworkRequest&, const Model::AssociateClientVpnTargetNetworkOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > AssociateClientVpnTargetNetworkResponseReceivedHandler;
1909     typedef std::function<void(const EC2Client*, const Model::AssociateDhcpOptionsRequest&, const Model::AssociateDhcpOptionsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > AssociateDhcpOptionsResponseReceivedHandler;
1910     typedef std::function<void(const EC2Client*, const Model::AssociateEnclaveCertificateIamRoleRequest&, const Model::AssociateEnclaveCertificateIamRoleOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > AssociateEnclaveCertificateIamRoleResponseReceivedHandler;
1911     typedef std::function<void(const EC2Client*, const Model::AssociateIamInstanceProfileRequest&, const Model::AssociateIamInstanceProfileOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > AssociateIamInstanceProfileResponseReceivedHandler;
1912     typedef std::function<void(const EC2Client*, const Model::AssociateInstanceEventWindowRequest&, const Model::AssociateInstanceEventWindowOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > AssociateInstanceEventWindowResponseReceivedHandler;
1913     typedef std::function<void(const EC2Client*, const Model::AssociateRouteTableRequest&, const Model::AssociateRouteTableOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > AssociateRouteTableResponseReceivedHandler;
1914     typedef std::function<void(const EC2Client*, const Model::AssociateSubnetCidrBlockRequest&, const Model::AssociateSubnetCidrBlockOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > AssociateSubnetCidrBlockResponseReceivedHandler;
1915     typedef std::function<void(const EC2Client*, const Model::AssociateTransitGatewayMulticastDomainRequest&, const Model::AssociateTransitGatewayMulticastDomainOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > AssociateTransitGatewayMulticastDomainResponseReceivedHandler;
1916     typedef std::function<void(const EC2Client*, const Model::AssociateTransitGatewayRouteTableRequest&, const Model::AssociateTransitGatewayRouteTableOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > AssociateTransitGatewayRouteTableResponseReceivedHandler;
1917     typedef std::function<void(const EC2Client*, const Model::AssociateTrunkInterfaceRequest&, const Model::AssociateTrunkInterfaceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > AssociateTrunkInterfaceResponseReceivedHandler;
1918     typedef std::function<void(const EC2Client*, const Model::AssociateVpcCidrBlockRequest&, const Model::AssociateVpcCidrBlockOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > AssociateVpcCidrBlockResponseReceivedHandler;
1919     typedef std::function<void(const EC2Client*, const Model::AttachClassicLinkVpcRequest&, const Model::AttachClassicLinkVpcOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > AttachClassicLinkVpcResponseReceivedHandler;
1920     typedef std::function<void(const EC2Client*, const Model::AttachInternetGatewayRequest&, const Model::AttachInternetGatewayOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > AttachInternetGatewayResponseReceivedHandler;
1921     typedef std::function<void(const EC2Client*, const Model::AttachNetworkInterfaceRequest&, const Model::AttachNetworkInterfaceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > AttachNetworkInterfaceResponseReceivedHandler;
1922     typedef std::function<void(const EC2Client*, const Model::AttachVolumeRequest&, const Model::AttachVolumeOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > AttachVolumeResponseReceivedHandler;
1923     typedef std::function<void(const EC2Client*, const Model::AttachVpnGatewayRequest&, const Model::AttachVpnGatewayOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > AttachVpnGatewayResponseReceivedHandler;
1924     typedef std::function<void(const EC2Client*, const Model::AuthorizeClientVpnIngressRequest&, const Model::AuthorizeClientVpnIngressOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > AuthorizeClientVpnIngressResponseReceivedHandler;
1925     typedef std::function<void(const EC2Client*, const Model::AuthorizeSecurityGroupEgressRequest&, const Model::AuthorizeSecurityGroupEgressOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > AuthorizeSecurityGroupEgressResponseReceivedHandler;
1926     typedef std::function<void(const EC2Client*, const Model::AuthorizeSecurityGroupIngressRequest&, const Model::AuthorizeSecurityGroupIngressOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > AuthorizeSecurityGroupIngressResponseReceivedHandler;
1927     typedef std::function<void(const EC2Client*, const Model::BundleInstanceRequest&, const Model::BundleInstanceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > BundleInstanceResponseReceivedHandler;
1928     typedef std::function<void(const EC2Client*, const Model::CancelBundleTaskRequest&, const Model::CancelBundleTaskOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CancelBundleTaskResponseReceivedHandler;
1929     typedef std::function<void(const EC2Client*, const Model::CancelCapacityReservationRequest&, const Model::CancelCapacityReservationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CancelCapacityReservationResponseReceivedHandler;
1930     typedef std::function<void(const EC2Client*, const Model::CancelCapacityReservationFleetsRequest&, const Model::CancelCapacityReservationFleetsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CancelCapacityReservationFleetsResponseReceivedHandler;
1931     typedef std::function<void(const EC2Client*, const Model::CancelConversionTaskRequest&, const Model::CancelConversionTaskOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CancelConversionTaskResponseReceivedHandler;
1932     typedef std::function<void(const EC2Client*, const Model::CancelExportTaskRequest&, const Model::CancelExportTaskOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CancelExportTaskResponseReceivedHandler;
1933     typedef std::function<void(const EC2Client*, const Model::CancelImportTaskRequest&, const Model::CancelImportTaskOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CancelImportTaskResponseReceivedHandler;
1934     typedef std::function<void(const EC2Client*, const Model::CancelReservedInstancesListingRequest&, const Model::CancelReservedInstancesListingOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CancelReservedInstancesListingResponseReceivedHandler;
1935     typedef std::function<void(const EC2Client*, const Model::CancelSpotFleetRequestsRequest&, const Model::CancelSpotFleetRequestsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CancelSpotFleetRequestsResponseReceivedHandler;
1936     typedef std::function<void(const EC2Client*, const Model::CancelSpotInstanceRequestsRequest&, const Model::CancelSpotInstanceRequestsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CancelSpotInstanceRequestsResponseReceivedHandler;
1937     typedef std::function<void(const EC2Client*, const Model::ConfirmProductInstanceRequest&, const Model::ConfirmProductInstanceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ConfirmProductInstanceResponseReceivedHandler;
1938     typedef std::function<void(const EC2Client*, const Model::CopyFpgaImageRequest&, const Model::CopyFpgaImageOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CopyFpgaImageResponseReceivedHandler;
1939     typedef std::function<void(const EC2Client*, const Model::CopyImageRequest&, const Model::CopyImageOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CopyImageResponseReceivedHandler;
1940     typedef std::function<void(const EC2Client*, const Model::CopySnapshotRequest&, const Model::CopySnapshotOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CopySnapshotResponseReceivedHandler;
1941     typedef std::function<void(const EC2Client*, const Model::CreateCapacityReservationRequest&, const Model::CreateCapacityReservationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateCapacityReservationResponseReceivedHandler;
1942     typedef std::function<void(const EC2Client*, const Model::CreateCapacityReservationFleetRequest&, const Model::CreateCapacityReservationFleetOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateCapacityReservationFleetResponseReceivedHandler;
1943     typedef std::function<void(const EC2Client*, const Model::CreateCarrierGatewayRequest&, const Model::CreateCarrierGatewayOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateCarrierGatewayResponseReceivedHandler;
1944     typedef std::function<void(const EC2Client*, const Model::CreateClientVpnEndpointRequest&, const Model::CreateClientVpnEndpointOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateClientVpnEndpointResponseReceivedHandler;
1945     typedef std::function<void(const EC2Client*, const Model::CreateClientVpnRouteRequest&, const Model::CreateClientVpnRouteOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateClientVpnRouteResponseReceivedHandler;
1946     typedef std::function<void(const EC2Client*, const Model::CreateCustomerGatewayRequest&, const Model::CreateCustomerGatewayOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateCustomerGatewayResponseReceivedHandler;
1947     typedef std::function<void(const EC2Client*, const Model::CreateDefaultSubnetRequest&, const Model::CreateDefaultSubnetOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateDefaultSubnetResponseReceivedHandler;
1948     typedef std::function<void(const EC2Client*, const Model::CreateDefaultVpcRequest&, const Model::CreateDefaultVpcOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateDefaultVpcResponseReceivedHandler;
1949     typedef std::function<void(const EC2Client*, const Model::CreateDhcpOptionsRequest&, const Model::CreateDhcpOptionsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateDhcpOptionsResponseReceivedHandler;
1950     typedef std::function<void(const EC2Client*, const Model::CreateEgressOnlyInternetGatewayRequest&, const Model::CreateEgressOnlyInternetGatewayOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateEgressOnlyInternetGatewayResponseReceivedHandler;
1951     typedef std::function<void(const EC2Client*, const Model::CreateFleetRequest&, const Model::CreateFleetOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateFleetResponseReceivedHandler;
1952     typedef std::function<void(const EC2Client*, const Model::CreateFlowLogsRequest&, const Model::CreateFlowLogsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateFlowLogsResponseReceivedHandler;
1953     typedef std::function<void(const EC2Client*, const Model::CreateFpgaImageRequest&, const Model::CreateFpgaImageOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateFpgaImageResponseReceivedHandler;
1954     typedef std::function<void(const EC2Client*, const Model::CreateImageRequest&, const Model::CreateImageOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateImageResponseReceivedHandler;
1955     typedef std::function<void(const EC2Client*, const Model::CreateInstanceEventWindowRequest&, const Model::CreateInstanceEventWindowOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateInstanceEventWindowResponseReceivedHandler;
1956     typedef std::function<void(const EC2Client*, const Model::CreateInstanceExportTaskRequest&, const Model::CreateInstanceExportTaskOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateInstanceExportTaskResponseReceivedHandler;
1957     typedef std::function<void(const EC2Client*, const Model::CreateInternetGatewayRequest&, const Model::CreateInternetGatewayOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateInternetGatewayResponseReceivedHandler;
1958     typedef std::function<void(const EC2Client*, const Model::CreateKeyPairRequest&, const Model::CreateKeyPairOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateKeyPairResponseReceivedHandler;
1959     typedef std::function<void(const EC2Client*, const Model::CreateLaunchTemplateRequest&, const Model::CreateLaunchTemplateOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateLaunchTemplateResponseReceivedHandler;
1960     typedef std::function<void(const EC2Client*, const Model::CreateLaunchTemplateVersionRequest&, const Model::CreateLaunchTemplateVersionOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateLaunchTemplateVersionResponseReceivedHandler;
1961     typedef std::function<void(const EC2Client*, const Model::CreateLocalGatewayRouteRequest&, const Model::CreateLocalGatewayRouteOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateLocalGatewayRouteResponseReceivedHandler;
1962     typedef std::function<void(const EC2Client*, const Model::CreateLocalGatewayRouteTableVpcAssociationRequest&, const Model::CreateLocalGatewayRouteTableVpcAssociationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateLocalGatewayRouteTableVpcAssociationResponseReceivedHandler;
1963     typedef std::function<void(const EC2Client*, const Model::CreateManagedPrefixListRequest&, const Model::CreateManagedPrefixListOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateManagedPrefixListResponseReceivedHandler;
1964     typedef std::function<void(const EC2Client*, const Model::CreateNatGatewayRequest&, const Model::CreateNatGatewayOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateNatGatewayResponseReceivedHandler;
1965     typedef std::function<void(const EC2Client*, const Model::CreateNetworkAclRequest&, const Model::CreateNetworkAclOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateNetworkAclResponseReceivedHandler;
1966     typedef std::function<void(const EC2Client*, const Model::CreateNetworkAclEntryRequest&, const Model::CreateNetworkAclEntryOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateNetworkAclEntryResponseReceivedHandler;
1967     typedef std::function<void(const EC2Client*, const Model::CreateNetworkInsightsPathRequest&, const Model::CreateNetworkInsightsPathOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateNetworkInsightsPathResponseReceivedHandler;
1968     typedef std::function<void(const EC2Client*, const Model::CreateNetworkInterfaceRequest&, const Model::CreateNetworkInterfaceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateNetworkInterfaceResponseReceivedHandler;
1969     typedef std::function<void(const EC2Client*, const Model::CreateNetworkInterfacePermissionRequest&, const Model::CreateNetworkInterfacePermissionOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateNetworkInterfacePermissionResponseReceivedHandler;
1970     typedef std::function<void(const EC2Client*, const Model::CreatePlacementGroupRequest&, const Model::CreatePlacementGroupOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreatePlacementGroupResponseReceivedHandler;
1971     typedef std::function<void(const EC2Client*, const Model::CreateReplaceRootVolumeTaskRequest&, const Model::CreateReplaceRootVolumeTaskOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateReplaceRootVolumeTaskResponseReceivedHandler;
1972     typedef std::function<void(const EC2Client*, const Model::CreateReservedInstancesListingRequest&, const Model::CreateReservedInstancesListingOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateReservedInstancesListingResponseReceivedHandler;
1973     typedef std::function<void(const EC2Client*, const Model::CreateRestoreImageTaskRequest&, const Model::CreateRestoreImageTaskOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateRestoreImageTaskResponseReceivedHandler;
1974     typedef std::function<void(const EC2Client*, const Model::CreateRouteRequest&, const Model::CreateRouteOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateRouteResponseReceivedHandler;
1975     typedef std::function<void(const EC2Client*, const Model::CreateRouteTableRequest&, const Model::CreateRouteTableOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateRouteTableResponseReceivedHandler;
1976     typedef std::function<void(const EC2Client*, const Model::CreateSecurityGroupRequest&, const Model::CreateSecurityGroupOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateSecurityGroupResponseReceivedHandler;
1977     typedef std::function<void(const EC2Client*, const Model::CreateSnapshotRequest&, const Model::CreateSnapshotOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateSnapshotResponseReceivedHandler;
1978     typedef std::function<void(const EC2Client*, const Model::CreateSnapshotsRequest&, const Model::CreateSnapshotsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateSnapshotsResponseReceivedHandler;
1979     typedef std::function<void(const EC2Client*, const Model::CreateSpotDatafeedSubscriptionRequest&, const Model::CreateSpotDatafeedSubscriptionOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateSpotDatafeedSubscriptionResponseReceivedHandler;
1980     typedef std::function<void(const EC2Client*, const Model::CreateStoreImageTaskRequest&, const Model::CreateStoreImageTaskOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateStoreImageTaskResponseReceivedHandler;
1981     typedef std::function<void(const EC2Client*, const Model::CreateSubnetRequest&, const Model::CreateSubnetOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateSubnetResponseReceivedHandler;
1982     typedef std::function<void(const EC2Client*, const Model::CreateSubnetCidrReservationRequest&, const Model::CreateSubnetCidrReservationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateSubnetCidrReservationResponseReceivedHandler;
1983     typedef std::function<void(const EC2Client*, const Model::CreateTagsRequest&, const Model::CreateTagsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateTagsResponseReceivedHandler;
1984     typedef std::function<void(const EC2Client*, const Model::CreateTrafficMirrorFilterRequest&, const Model::CreateTrafficMirrorFilterOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateTrafficMirrorFilterResponseReceivedHandler;
1985     typedef std::function<void(const EC2Client*, const Model::CreateTrafficMirrorFilterRuleRequest&, const Model::CreateTrafficMirrorFilterRuleOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateTrafficMirrorFilterRuleResponseReceivedHandler;
1986     typedef std::function<void(const EC2Client*, const Model::CreateTrafficMirrorSessionRequest&, const Model::CreateTrafficMirrorSessionOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateTrafficMirrorSessionResponseReceivedHandler;
1987     typedef std::function<void(const EC2Client*, const Model::CreateTrafficMirrorTargetRequest&, const Model::CreateTrafficMirrorTargetOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateTrafficMirrorTargetResponseReceivedHandler;
1988     typedef std::function<void(const EC2Client*, const Model::CreateTransitGatewayRequest&, const Model::CreateTransitGatewayOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateTransitGatewayResponseReceivedHandler;
1989     typedef std::function<void(const EC2Client*, const Model::CreateTransitGatewayConnectRequest&, const Model::CreateTransitGatewayConnectOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateTransitGatewayConnectResponseReceivedHandler;
1990     typedef std::function<void(const EC2Client*, const Model::CreateTransitGatewayConnectPeerRequest&, const Model::CreateTransitGatewayConnectPeerOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateTransitGatewayConnectPeerResponseReceivedHandler;
1991     typedef std::function<void(const EC2Client*, const Model::CreateTransitGatewayMulticastDomainRequest&, const Model::CreateTransitGatewayMulticastDomainOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateTransitGatewayMulticastDomainResponseReceivedHandler;
1992     typedef std::function<void(const EC2Client*, const Model::CreateTransitGatewayPeeringAttachmentRequest&, const Model::CreateTransitGatewayPeeringAttachmentOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateTransitGatewayPeeringAttachmentResponseReceivedHandler;
1993     typedef std::function<void(const EC2Client*, const Model::CreateTransitGatewayPrefixListReferenceRequest&, const Model::CreateTransitGatewayPrefixListReferenceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateTransitGatewayPrefixListReferenceResponseReceivedHandler;
1994     typedef std::function<void(const EC2Client*, const Model::CreateTransitGatewayRouteRequest&, const Model::CreateTransitGatewayRouteOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateTransitGatewayRouteResponseReceivedHandler;
1995     typedef std::function<void(const EC2Client*, const Model::CreateTransitGatewayRouteTableRequest&, const Model::CreateTransitGatewayRouteTableOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateTransitGatewayRouteTableResponseReceivedHandler;
1996     typedef std::function<void(const EC2Client*, const Model::CreateTransitGatewayVpcAttachmentRequest&, const Model::CreateTransitGatewayVpcAttachmentOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateTransitGatewayVpcAttachmentResponseReceivedHandler;
1997     typedef std::function<void(const EC2Client*, const Model::CreateVolumeRequest&, const Model::CreateVolumeOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateVolumeResponseReceivedHandler;
1998     typedef std::function<void(const EC2Client*, const Model::CreateVpcRequest&, const Model::CreateVpcOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateVpcResponseReceivedHandler;
1999     typedef std::function<void(const EC2Client*, const Model::CreateVpcEndpointRequest&, const Model::CreateVpcEndpointOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateVpcEndpointResponseReceivedHandler;
2000     typedef std::function<void(const EC2Client*, const Model::CreateVpcEndpointConnectionNotificationRequest&, const Model::CreateVpcEndpointConnectionNotificationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateVpcEndpointConnectionNotificationResponseReceivedHandler;
2001     typedef std::function<void(const EC2Client*, const Model::CreateVpcEndpointServiceConfigurationRequest&, const Model::CreateVpcEndpointServiceConfigurationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateVpcEndpointServiceConfigurationResponseReceivedHandler;
2002     typedef std::function<void(const EC2Client*, const Model::CreateVpcPeeringConnectionRequest&, const Model::CreateVpcPeeringConnectionOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateVpcPeeringConnectionResponseReceivedHandler;
2003     typedef std::function<void(const EC2Client*, const Model::CreateVpnConnectionRequest&, const Model::CreateVpnConnectionOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateVpnConnectionResponseReceivedHandler;
2004     typedef std::function<void(const EC2Client*, const Model::CreateVpnConnectionRouteRequest&, const Model::CreateVpnConnectionRouteOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateVpnConnectionRouteResponseReceivedHandler;
2005     typedef std::function<void(const EC2Client*, const Model::CreateVpnGatewayRequest&, const Model::CreateVpnGatewayOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateVpnGatewayResponseReceivedHandler;
2006     typedef std::function<void(const EC2Client*, const Model::DeleteCarrierGatewayRequest&, const Model::DeleteCarrierGatewayOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteCarrierGatewayResponseReceivedHandler;
2007     typedef std::function<void(const EC2Client*, const Model::DeleteClientVpnEndpointRequest&, const Model::DeleteClientVpnEndpointOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteClientVpnEndpointResponseReceivedHandler;
2008     typedef std::function<void(const EC2Client*, const Model::DeleteClientVpnRouteRequest&, const Model::DeleteClientVpnRouteOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteClientVpnRouteResponseReceivedHandler;
2009     typedef std::function<void(const EC2Client*, const Model::DeleteCustomerGatewayRequest&, const Model::DeleteCustomerGatewayOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteCustomerGatewayResponseReceivedHandler;
2010     typedef std::function<void(const EC2Client*, const Model::DeleteDhcpOptionsRequest&, const Model::DeleteDhcpOptionsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteDhcpOptionsResponseReceivedHandler;
2011     typedef std::function<void(const EC2Client*, const Model::DeleteEgressOnlyInternetGatewayRequest&, const Model::DeleteEgressOnlyInternetGatewayOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteEgressOnlyInternetGatewayResponseReceivedHandler;
2012     typedef std::function<void(const EC2Client*, const Model::DeleteFleetsRequest&, const Model::DeleteFleetsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteFleetsResponseReceivedHandler;
2013     typedef std::function<void(const EC2Client*, const Model::DeleteFlowLogsRequest&, const Model::DeleteFlowLogsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteFlowLogsResponseReceivedHandler;
2014     typedef std::function<void(const EC2Client*, const Model::DeleteFpgaImageRequest&, const Model::DeleteFpgaImageOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteFpgaImageResponseReceivedHandler;
2015     typedef std::function<void(const EC2Client*, const Model::DeleteInstanceEventWindowRequest&, const Model::DeleteInstanceEventWindowOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteInstanceEventWindowResponseReceivedHandler;
2016     typedef std::function<void(const EC2Client*, const Model::DeleteInternetGatewayRequest&, const Model::DeleteInternetGatewayOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteInternetGatewayResponseReceivedHandler;
2017     typedef std::function<void(const EC2Client*, const Model::DeleteKeyPairRequest&, const Model::DeleteKeyPairOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteKeyPairResponseReceivedHandler;
2018     typedef std::function<void(const EC2Client*, const Model::DeleteLaunchTemplateRequest&, const Model::DeleteLaunchTemplateOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteLaunchTemplateResponseReceivedHandler;
2019     typedef std::function<void(const EC2Client*, const Model::DeleteLaunchTemplateVersionsRequest&, const Model::DeleteLaunchTemplateVersionsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteLaunchTemplateVersionsResponseReceivedHandler;
2020     typedef std::function<void(const EC2Client*, const Model::DeleteLocalGatewayRouteRequest&, const Model::DeleteLocalGatewayRouteOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteLocalGatewayRouteResponseReceivedHandler;
2021     typedef std::function<void(const EC2Client*, const Model::DeleteLocalGatewayRouteTableVpcAssociationRequest&, const Model::DeleteLocalGatewayRouteTableVpcAssociationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteLocalGatewayRouteTableVpcAssociationResponseReceivedHandler;
2022     typedef std::function<void(const EC2Client*, const Model::DeleteManagedPrefixListRequest&, const Model::DeleteManagedPrefixListOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteManagedPrefixListResponseReceivedHandler;
2023     typedef std::function<void(const EC2Client*, const Model::DeleteNatGatewayRequest&, const Model::DeleteNatGatewayOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteNatGatewayResponseReceivedHandler;
2024     typedef std::function<void(const EC2Client*, const Model::DeleteNetworkAclRequest&, const Model::DeleteNetworkAclOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteNetworkAclResponseReceivedHandler;
2025     typedef std::function<void(const EC2Client*, const Model::DeleteNetworkAclEntryRequest&, const Model::DeleteNetworkAclEntryOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteNetworkAclEntryResponseReceivedHandler;
2026     typedef std::function<void(const EC2Client*, const Model::DeleteNetworkInsightsAnalysisRequest&, const Model::DeleteNetworkInsightsAnalysisOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteNetworkInsightsAnalysisResponseReceivedHandler;
2027     typedef std::function<void(const EC2Client*, const Model::DeleteNetworkInsightsPathRequest&, const Model::DeleteNetworkInsightsPathOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteNetworkInsightsPathResponseReceivedHandler;
2028     typedef std::function<void(const EC2Client*, const Model::DeleteNetworkInterfaceRequest&, const Model::DeleteNetworkInterfaceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteNetworkInterfaceResponseReceivedHandler;
2029     typedef std::function<void(const EC2Client*, const Model::DeleteNetworkInterfacePermissionRequest&, const Model::DeleteNetworkInterfacePermissionOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteNetworkInterfacePermissionResponseReceivedHandler;
2030     typedef std::function<void(const EC2Client*, const Model::DeletePlacementGroupRequest&, const Model::DeletePlacementGroupOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeletePlacementGroupResponseReceivedHandler;
2031     typedef std::function<void(const EC2Client*, const Model::DeleteQueuedReservedInstancesRequest&, const Model::DeleteQueuedReservedInstancesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteQueuedReservedInstancesResponseReceivedHandler;
2032     typedef std::function<void(const EC2Client*, const Model::DeleteRouteRequest&, const Model::DeleteRouteOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteRouteResponseReceivedHandler;
2033     typedef std::function<void(const EC2Client*, const Model::DeleteRouteTableRequest&, const Model::DeleteRouteTableOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteRouteTableResponseReceivedHandler;
2034     typedef std::function<void(const EC2Client*, const Model::DeleteSecurityGroupRequest&, const Model::DeleteSecurityGroupOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteSecurityGroupResponseReceivedHandler;
2035     typedef std::function<void(const EC2Client*, const Model::DeleteSnapshotRequest&, const Model::DeleteSnapshotOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteSnapshotResponseReceivedHandler;
2036     typedef std::function<void(const EC2Client*, const Model::DeleteSpotDatafeedSubscriptionRequest&, const Model::DeleteSpotDatafeedSubscriptionOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteSpotDatafeedSubscriptionResponseReceivedHandler;
2037     typedef std::function<void(const EC2Client*, const Model::DeleteSubnetRequest&, const Model::DeleteSubnetOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteSubnetResponseReceivedHandler;
2038     typedef std::function<void(const EC2Client*, const Model::DeleteSubnetCidrReservationRequest&, const Model::DeleteSubnetCidrReservationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteSubnetCidrReservationResponseReceivedHandler;
2039     typedef std::function<void(const EC2Client*, const Model::DeleteTagsRequest&, const Model::DeleteTagsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteTagsResponseReceivedHandler;
2040     typedef std::function<void(const EC2Client*, const Model::DeleteTrafficMirrorFilterRequest&, const Model::DeleteTrafficMirrorFilterOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteTrafficMirrorFilterResponseReceivedHandler;
2041     typedef std::function<void(const EC2Client*, const Model::DeleteTrafficMirrorFilterRuleRequest&, const Model::DeleteTrafficMirrorFilterRuleOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteTrafficMirrorFilterRuleResponseReceivedHandler;
2042     typedef std::function<void(const EC2Client*, const Model::DeleteTrafficMirrorSessionRequest&, const Model::DeleteTrafficMirrorSessionOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteTrafficMirrorSessionResponseReceivedHandler;
2043     typedef std::function<void(const EC2Client*, const Model::DeleteTrafficMirrorTargetRequest&, const Model::DeleteTrafficMirrorTargetOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteTrafficMirrorTargetResponseReceivedHandler;
2044     typedef std::function<void(const EC2Client*, const Model::DeleteTransitGatewayRequest&, const Model::DeleteTransitGatewayOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteTransitGatewayResponseReceivedHandler;
2045     typedef std::function<void(const EC2Client*, const Model::DeleteTransitGatewayConnectRequest&, const Model::DeleteTransitGatewayConnectOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteTransitGatewayConnectResponseReceivedHandler;
2046     typedef std::function<void(const EC2Client*, const Model::DeleteTransitGatewayConnectPeerRequest&, const Model::DeleteTransitGatewayConnectPeerOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteTransitGatewayConnectPeerResponseReceivedHandler;
2047     typedef std::function<void(const EC2Client*, const Model::DeleteTransitGatewayMulticastDomainRequest&, const Model::DeleteTransitGatewayMulticastDomainOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteTransitGatewayMulticastDomainResponseReceivedHandler;
2048     typedef std::function<void(const EC2Client*, const Model::DeleteTransitGatewayPeeringAttachmentRequest&, const Model::DeleteTransitGatewayPeeringAttachmentOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteTransitGatewayPeeringAttachmentResponseReceivedHandler;
2049     typedef std::function<void(const EC2Client*, const Model::DeleteTransitGatewayPrefixListReferenceRequest&, const Model::DeleteTransitGatewayPrefixListReferenceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteTransitGatewayPrefixListReferenceResponseReceivedHandler;
2050     typedef std::function<void(const EC2Client*, const Model::DeleteTransitGatewayRouteRequest&, const Model::DeleteTransitGatewayRouteOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteTransitGatewayRouteResponseReceivedHandler;
2051     typedef std::function<void(const EC2Client*, const Model::DeleteTransitGatewayRouteTableRequest&, const Model::DeleteTransitGatewayRouteTableOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteTransitGatewayRouteTableResponseReceivedHandler;
2052     typedef std::function<void(const EC2Client*, const Model::DeleteTransitGatewayVpcAttachmentRequest&, const Model::DeleteTransitGatewayVpcAttachmentOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteTransitGatewayVpcAttachmentResponseReceivedHandler;
2053     typedef std::function<void(const EC2Client*, const Model::DeleteVolumeRequest&, const Model::DeleteVolumeOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteVolumeResponseReceivedHandler;
2054     typedef std::function<void(const EC2Client*, const Model::DeleteVpcRequest&, const Model::DeleteVpcOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteVpcResponseReceivedHandler;
2055     typedef std::function<void(const EC2Client*, const Model::DeleteVpcEndpointConnectionNotificationsRequest&, const Model::DeleteVpcEndpointConnectionNotificationsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteVpcEndpointConnectionNotificationsResponseReceivedHandler;
2056     typedef std::function<void(const EC2Client*, const Model::DeleteVpcEndpointServiceConfigurationsRequest&, const Model::DeleteVpcEndpointServiceConfigurationsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteVpcEndpointServiceConfigurationsResponseReceivedHandler;
2057     typedef std::function<void(const EC2Client*, const Model::DeleteVpcEndpointsRequest&, const Model::DeleteVpcEndpointsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteVpcEndpointsResponseReceivedHandler;
2058     typedef std::function<void(const EC2Client*, const Model::DeleteVpcPeeringConnectionRequest&, const Model::DeleteVpcPeeringConnectionOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteVpcPeeringConnectionResponseReceivedHandler;
2059     typedef std::function<void(const EC2Client*, const Model::DeleteVpnConnectionRequest&, const Model::DeleteVpnConnectionOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteVpnConnectionResponseReceivedHandler;
2060     typedef std::function<void(const EC2Client*, const Model::DeleteVpnConnectionRouteRequest&, const Model::DeleteVpnConnectionRouteOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteVpnConnectionRouteResponseReceivedHandler;
2061     typedef std::function<void(const EC2Client*, const Model::DeleteVpnGatewayRequest&, const Model::DeleteVpnGatewayOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteVpnGatewayResponseReceivedHandler;
2062     typedef std::function<void(const EC2Client*, const Model::DeprovisionByoipCidrRequest&, const Model::DeprovisionByoipCidrOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeprovisionByoipCidrResponseReceivedHandler;
2063     typedef std::function<void(const EC2Client*, const Model::DeregisterImageRequest&, const Model::DeregisterImageOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeregisterImageResponseReceivedHandler;
2064     typedef std::function<void(const EC2Client*, const Model::DeregisterInstanceEventNotificationAttributesRequest&, const Model::DeregisterInstanceEventNotificationAttributesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeregisterInstanceEventNotificationAttributesResponseReceivedHandler;
2065     typedef std::function<void(const EC2Client*, const Model::DeregisterTransitGatewayMulticastGroupMembersRequest&, const Model::DeregisterTransitGatewayMulticastGroupMembersOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeregisterTransitGatewayMulticastGroupMembersResponseReceivedHandler;
2066     typedef std::function<void(const EC2Client*, const Model::DeregisterTransitGatewayMulticastGroupSourcesRequest&, const Model::DeregisterTransitGatewayMulticastGroupSourcesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeregisterTransitGatewayMulticastGroupSourcesResponseReceivedHandler;
2067     typedef std::function<void(const EC2Client*, const Model::DescribeAccountAttributesRequest&, const Model::DescribeAccountAttributesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeAccountAttributesResponseReceivedHandler;
2068     typedef std::function<void(const EC2Client*, const Model::DescribeAddressesRequest&, const Model::DescribeAddressesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeAddressesResponseReceivedHandler;
2069     typedef std::function<void(const EC2Client*, const Model::DescribeAddressesAttributeRequest&, const Model::DescribeAddressesAttributeOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeAddressesAttributeResponseReceivedHandler;
2070     typedef std::function<void(const EC2Client*, const Model::DescribeAggregateIdFormatRequest&, const Model::DescribeAggregateIdFormatOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeAggregateIdFormatResponseReceivedHandler;
2071     typedef std::function<void(const EC2Client*, const Model::DescribeAvailabilityZonesRequest&, const Model::DescribeAvailabilityZonesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeAvailabilityZonesResponseReceivedHandler;
2072     typedef std::function<void(const EC2Client*, const Model::DescribeBundleTasksRequest&, const Model::DescribeBundleTasksOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeBundleTasksResponseReceivedHandler;
2073     typedef std::function<void(const EC2Client*, const Model::DescribeByoipCidrsRequest&, const Model::DescribeByoipCidrsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeByoipCidrsResponseReceivedHandler;
2074     typedef std::function<void(const EC2Client*, const Model::DescribeCapacityReservationFleetsRequest&, const Model::DescribeCapacityReservationFleetsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeCapacityReservationFleetsResponseReceivedHandler;
2075     typedef std::function<void(const EC2Client*, const Model::DescribeCapacityReservationsRequest&, const Model::DescribeCapacityReservationsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeCapacityReservationsResponseReceivedHandler;
2076     typedef std::function<void(const EC2Client*, const Model::DescribeCarrierGatewaysRequest&, const Model::DescribeCarrierGatewaysOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeCarrierGatewaysResponseReceivedHandler;
2077     typedef std::function<void(const EC2Client*, const Model::DescribeClassicLinkInstancesRequest&, const Model::DescribeClassicLinkInstancesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeClassicLinkInstancesResponseReceivedHandler;
2078     typedef std::function<void(const EC2Client*, const Model::DescribeClientVpnAuthorizationRulesRequest&, const Model::DescribeClientVpnAuthorizationRulesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeClientVpnAuthorizationRulesResponseReceivedHandler;
2079     typedef std::function<void(const EC2Client*, const Model::DescribeClientVpnConnectionsRequest&, const Model::DescribeClientVpnConnectionsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeClientVpnConnectionsResponseReceivedHandler;
2080     typedef std::function<void(const EC2Client*, const Model::DescribeClientVpnEndpointsRequest&, const Model::DescribeClientVpnEndpointsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeClientVpnEndpointsResponseReceivedHandler;
2081     typedef std::function<void(const EC2Client*, const Model::DescribeClientVpnRoutesRequest&, const Model::DescribeClientVpnRoutesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeClientVpnRoutesResponseReceivedHandler;
2082     typedef std::function<void(const EC2Client*, const Model::DescribeClientVpnTargetNetworksRequest&, const Model::DescribeClientVpnTargetNetworksOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeClientVpnTargetNetworksResponseReceivedHandler;
2083     typedef std::function<void(const EC2Client*, const Model::DescribeCoipPoolsRequest&, const Model::DescribeCoipPoolsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeCoipPoolsResponseReceivedHandler;
2084     typedef std::function<void(const EC2Client*, const Model::DescribeConversionTasksRequest&, const Model::DescribeConversionTasksOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeConversionTasksResponseReceivedHandler;
2085     typedef std::function<void(const EC2Client*, const Model::DescribeCustomerGatewaysRequest&, const Model::DescribeCustomerGatewaysOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeCustomerGatewaysResponseReceivedHandler;
2086     typedef std::function<void(const EC2Client*, const Model::DescribeDhcpOptionsRequest&, const Model::DescribeDhcpOptionsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeDhcpOptionsResponseReceivedHandler;
2087     typedef std::function<void(const EC2Client*, const Model::DescribeEgressOnlyInternetGatewaysRequest&, const Model::DescribeEgressOnlyInternetGatewaysOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeEgressOnlyInternetGatewaysResponseReceivedHandler;
2088     typedef std::function<void(const EC2Client*, const Model::DescribeElasticGpusRequest&, const Model::DescribeElasticGpusOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeElasticGpusResponseReceivedHandler;
2089     typedef std::function<void(const EC2Client*, const Model::DescribeExportImageTasksRequest&, const Model::DescribeExportImageTasksOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeExportImageTasksResponseReceivedHandler;
2090     typedef std::function<void(const EC2Client*, const Model::DescribeExportTasksRequest&, const Model::DescribeExportTasksOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeExportTasksResponseReceivedHandler;
2091     typedef std::function<void(const EC2Client*, const Model::DescribeFastSnapshotRestoresRequest&, const Model::DescribeFastSnapshotRestoresOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeFastSnapshotRestoresResponseReceivedHandler;
2092     typedef std::function<void(const EC2Client*, const Model::DescribeFleetHistoryRequest&, const Model::DescribeFleetHistoryOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeFleetHistoryResponseReceivedHandler;
2093     typedef std::function<void(const EC2Client*, const Model::DescribeFleetInstancesRequest&, const Model::DescribeFleetInstancesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeFleetInstancesResponseReceivedHandler;
2094     typedef std::function<void(const EC2Client*, const Model::DescribeFleetsRequest&, const Model::DescribeFleetsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeFleetsResponseReceivedHandler;
2095     typedef std::function<void(const EC2Client*, const Model::DescribeFlowLogsRequest&, const Model::DescribeFlowLogsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeFlowLogsResponseReceivedHandler;
2096     typedef std::function<void(const EC2Client*, const Model::DescribeFpgaImageAttributeRequest&, const Model::DescribeFpgaImageAttributeOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeFpgaImageAttributeResponseReceivedHandler;
2097     typedef std::function<void(const EC2Client*, const Model::DescribeFpgaImagesRequest&, const Model::DescribeFpgaImagesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeFpgaImagesResponseReceivedHandler;
2098     typedef std::function<void(const EC2Client*, const Model::DescribeHostReservationOfferingsRequest&, const Model::DescribeHostReservationOfferingsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeHostReservationOfferingsResponseReceivedHandler;
2099     typedef std::function<void(const EC2Client*, const Model::DescribeHostReservationsRequest&, const Model::DescribeHostReservationsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeHostReservationsResponseReceivedHandler;
2100     typedef std::function<void(const EC2Client*, const Model::DescribeHostsRequest&, const Model::DescribeHostsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeHostsResponseReceivedHandler;
2101     typedef std::function<void(const EC2Client*, const Model::DescribeIamInstanceProfileAssociationsRequest&, const Model::DescribeIamInstanceProfileAssociationsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeIamInstanceProfileAssociationsResponseReceivedHandler;
2102     typedef std::function<void(const EC2Client*, const Model::DescribeIdFormatRequest&, const Model::DescribeIdFormatOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeIdFormatResponseReceivedHandler;
2103     typedef std::function<void(const EC2Client*, const Model::DescribeIdentityIdFormatRequest&, const Model::DescribeIdentityIdFormatOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeIdentityIdFormatResponseReceivedHandler;
2104     typedef std::function<void(const EC2Client*, const Model::DescribeImageAttributeRequest&, const Model::DescribeImageAttributeOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeImageAttributeResponseReceivedHandler;
2105     typedef std::function<void(const EC2Client*, const Model::DescribeImagesRequest&, const Model::DescribeImagesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeImagesResponseReceivedHandler;
2106     typedef std::function<void(const EC2Client*, const Model::DescribeImportImageTasksRequest&, const Model::DescribeImportImageTasksOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeImportImageTasksResponseReceivedHandler;
2107     typedef std::function<void(const EC2Client*, const Model::DescribeImportSnapshotTasksRequest&, const Model::DescribeImportSnapshotTasksOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeImportSnapshotTasksResponseReceivedHandler;
2108     typedef std::function<void(const EC2Client*, const Model::DescribeInstanceAttributeRequest&, const Model::DescribeInstanceAttributeOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeInstanceAttributeResponseReceivedHandler;
2109     typedef std::function<void(const EC2Client*, const Model::DescribeInstanceCreditSpecificationsRequest&, const Model::DescribeInstanceCreditSpecificationsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeInstanceCreditSpecificationsResponseReceivedHandler;
2110     typedef std::function<void(const EC2Client*, const Model::DescribeInstanceEventNotificationAttributesRequest&, const Model::DescribeInstanceEventNotificationAttributesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeInstanceEventNotificationAttributesResponseReceivedHandler;
2111     typedef std::function<void(const EC2Client*, const Model::DescribeInstanceEventWindowsRequest&, const Model::DescribeInstanceEventWindowsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeInstanceEventWindowsResponseReceivedHandler;
2112     typedef std::function<void(const EC2Client*, const Model::DescribeInstanceStatusRequest&, const Model::DescribeInstanceStatusOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeInstanceStatusResponseReceivedHandler;
2113     typedef std::function<void(const EC2Client*, const Model::DescribeInstanceTypeOfferingsRequest&, const Model::DescribeInstanceTypeOfferingsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeInstanceTypeOfferingsResponseReceivedHandler;
2114     typedef std::function<void(const EC2Client*, const Model::DescribeInstanceTypesRequest&, const Model::DescribeInstanceTypesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeInstanceTypesResponseReceivedHandler;
2115     typedef std::function<void(const EC2Client*, const Model::DescribeInstancesRequest&, const Model::DescribeInstancesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeInstancesResponseReceivedHandler;
2116     typedef std::function<void(const EC2Client*, const Model::DescribeInternetGatewaysRequest&, const Model::DescribeInternetGatewaysOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeInternetGatewaysResponseReceivedHandler;
2117     typedef std::function<void(const EC2Client*, const Model::DescribeIpv6PoolsRequest&, const Model::DescribeIpv6PoolsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeIpv6PoolsResponseReceivedHandler;
2118     typedef std::function<void(const EC2Client*, const Model::DescribeKeyPairsRequest&, const Model::DescribeKeyPairsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeKeyPairsResponseReceivedHandler;
2119     typedef std::function<void(const EC2Client*, const Model::DescribeLaunchTemplateVersionsRequest&, const Model::DescribeLaunchTemplateVersionsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeLaunchTemplateVersionsResponseReceivedHandler;
2120     typedef std::function<void(const EC2Client*, const Model::DescribeLaunchTemplatesRequest&, const Model::DescribeLaunchTemplatesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeLaunchTemplatesResponseReceivedHandler;
2121     typedef std::function<void(const EC2Client*, const Model::DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsRequest&, const Model::DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsResponseReceivedHandler;
2122     typedef std::function<void(const EC2Client*, const Model::DescribeLocalGatewayRouteTableVpcAssociationsRequest&, const Model::DescribeLocalGatewayRouteTableVpcAssociationsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeLocalGatewayRouteTableVpcAssociationsResponseReceivedHandler;
2123     typedef std::function<void(const EC2Client*, const Model::DescribeLocalGatewayRouteTablesRequest&, const Model::DescribeLocalGatewayRouteTablesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeLocalGatewayRouteTablesResponseReceivedHandler;
2124     typedef std::function<void(const EC2Client*, const Model::DescribeLocalGatewayVirtualInterfaceGroupsRequest&, const Model::DescribeLocalGatewayVirtualInterfaceGroupsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeLocalGatewayVirtualInterfaceGroupsResponseReceivedHandler;
2125     typedef std::function<void(const EC2Client*, const Model::DescribeLocalGatewayVirtualInterfacesRequest&, const Model::DescribeLocalGatewayVirtualInterfacesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeLocalGatewayVirtualInterfacesResponseReceivedHandler;
2126     typedef std::function<void(const EC2Client*, const Model::DescribeLocalGatewaysRequest&, const Model::DescribeLocalGatewaysOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeLocalGatewaysResponseReceivedHandler;
2127     typedef std::function<void(const EC2Client*, const Model::DescribeManagedPrefixListsRequest&, const Model::DescribeManagedPrefixListsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeManagedPrefixListsResponseReceivedHandler;
2128     typedef std::function<void(const EC2Client*, const Model::DescribeMovingAddressesRequest&, const Model::DescribeMovingAddressesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeMovingAddressesResponseReceivedHandler;
2129     typedef std::function<void(const EC2Client*, const Model::DescribeNatGatewaysRequest&, const Model::DescribeNatGatewaysOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeNatGatewaysResponseReceivedHandler;
2130     typedef std::function<void(const EC2Client*, const Model::DescribeNetworkAclsRequest&, const Model::DescribeNetworkAclsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeNetworkAclsResponseReceivedHandler;
2131     typedef std::function<void(const EC2Client*, const Model::DescribeNetworkInsightsAnalysesRequest&, const Model::DescribeNetworkInsightsAnalysesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeNetworkInsightsAnalysesResponseReceivedHandler;
2132     typedef std::function<void(const EC2Client*, const Model::DescribeNetworkInsightsPathsRequest&, const Model::DescribeNetworkInsightsPathsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeNetworkInsightsPathsResponseReceivedHandler;
2133     typedef std::function<void(const EC2Client*, const Model::DescribeNetworkInterfaceAttributeRequest&, const Model::DescribeNetworkInterfaceAttributeOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeNetworkInterfaceAttributeResponseReceivedHandler;
2134     typedef std::function<void(const EC2Client*, const Model::DescribeNetworkInterfacePermissionsRequest&, const Model::DescribeNetworkInterfacePermissionsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeNetworkInterfacePermissionsResponseReceivedHandler;
2135     typedef std::function<void(const EC2Client*, const Model::DescribeNetworkInterfacesRequest&, const Model::DescribeNetworkInterfacesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeNetworkInterfacesResponseReceivedHandler;
2136     typedef std::function<void(const EC2Client*, const Model::DescribePlacementGroupsRequest&, const Model::DescribePlacementGroupsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribePlacementGroupsResponseReceivedHandler;
2137     typedef std::function<void(const EC2Client*, const Model::DescribePrefixListsRequest&, const Model::DescribePrefixListsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribePrefixListsResponseReceivedHandler;
2138     typedef std::function<void(const EC2Client*, const Model::DescribePrincipalIdFormatRequest&, const Model::DescribePrincipalIdFormatOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribePrincipalIdFormatResponseReceivedHandler;
2139     typedef std::function<void(const EC2Client*, const Model::DescribePublicIpv4PoolsRequest&, const Model::DescribePublicIpv4PoolsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribePublicIpv4PoolsResponseReceivedHandler;
2140     typedef std::function<void(const EC2Client*, const Model::DescribeRegionsRequest&, const Model::DescribeRegionsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeRegionsResponseReceivedHandler;
2141     typedef std::function<void(const EC2Client*, const Model::DescribeReplaceRootVolumeTasksRequest&, const Model::DescribeReplaceRootVolumeTasksOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeReplaceRootVolumeTasksResponseReceivedHandler;
2142     typedef std::function<void(const EC2Client*, const Model::DescribeReservedInstancesRequest&, const Model::DescribeReservedInstancesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeReservedInstancesResponseReceivedHandler;
2143     typedef std::function<void(const EC2Client*, const Model::DescribeReservedInstancesListingsRequest&, const Model::DescribeReservedInstancesListingsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeReservedInstancesListingsResponseReceivedHandler;
2144     typedef std::function<void(const EC2Client*, const Model::DescribeReservedInstancesModificationsRequest&, const Model::DescribeReservedInstancesModificationsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeReservedInstancesModificationsResponseReceivedHandler;
2145     typedef std::function<void(const EC2Client*, const Model::DescribeReservedInstancesOfferingsRequest&, const Model::DescribeReservedInstancesOfferingsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeReservedInstancesOfferingsResponseReceivedHandler;
2146     typedef std::function<void(const EC2Client*, const Model::DescribeRouteTablesRequest&, const Model::DescribeRouteTablesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeRouteTablesResponseReceivedHandler;
2147     typedef std::function<void(const EC2Client*, const Model::DescribeScheduledInstanceAvailabilityRequest&, const Model::DescribeScheduledInstanceAvailabilityOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeScheduledInstanceAvailabilityResponseReceivedHandler;
2148     typedef std::function<void(const EC2Client*, const Model::DescribeScheduledInstancesRequest&, const Model::DescribeScheduledInstancesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeScheduledInstancesResponseReceivedHandler;
2149     typedef std::function<void(const EC2Client*, const Model::DescribeSecurityGroupReferencesRequest&, const Model::DescribeSecurityGroupReferencesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeSecurityGroupReferencesResponseReceivedHandler;
2150     typedef std::function<void(const EC2Client*, const Model::DescribeSecurityGroupRulesRequest&, const Model::DescribeSecurityGroupRulesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeSecurityGroupRulesResponseReceivedHandler;
2151     typedef std::function<void(const EC2Client*, const Model::DescribeSecurityGroupsRequest&, const Model::DescribeSecurityGroupsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeSecurityGroupsResponseReceivedHandler;
2152     typedef std::function<void(const EC2Client*, const Model::DescribeSnapshotAttributeRequest&, const Model::DescribeSnapshotAttributeOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeSnapshotAttributeResponseReceivedHandler;
2153     typedef std::function<void(const EC2Client*, const Model::DescribeSnapshotsRequest&, const Model::DescribeSnapshotsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeSnapshotsResponseReceivedHandler;
2154     typedef std::function<void(const EC2Client*, const Model::DescribeSpotDatafeedSubscriptionRequest&, const Model::DescribeSpotDatafeedSubscriptionOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeSpotDatafeedSubscriptionResponseReceivedHandler;
2155     typedef std::function<void(const EC2Client*, const Model::DescribeSpotFleetInstancesRequest&, const Model::DescribeSpotFleetInstancesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeSpotFleetInstancesResponseReceivedHandler;
2156     typedef std::function<void(const EC2Client*, const Model::DescribeSpotFleetRequestHistoryRequest&, const Model::DescribeSpotFleetRequestHistoryOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeSpotFleetRequestHistoryResponseReceivedHandler;
2157     typedef std::function<void(const EC2Client*, const Model::DescribeSpotFleetRequestsRequest&, const Model::DescribeSpotFleetRequestsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeSpotFleetRequestsResponseReceivedHandler;
2158     typedef std::function<void(const EC2Client*, const Model::DescribeSpotInstanceRequestsRequest&, const Model::DescribeSpotInstanceRequestsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeSpotInstanceRequestsResponseReceivedHandler;
2159     typedef std::function<void(const EC2Client*, const Model::DescribeSpotPriceHistoryRequest&, const Model::DescribeSpotPriceHistoryOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeSpotPriceHistoryResponseReceivedHandler;
2160     typedef std::function<void(const EC2Client*, const Model::DescribeStaleSecurityGroupsRequest&, const Model::DescribeStaleSecurityGroupsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeStaleSecurityGroupsResponseReceivedHandler;
2161     typedef std::function<void(const EC2Client*, const Model::DescribeStoreImageTasksRequest&, const Model::DescribeStoreImageTasksOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeStoreImageTasksResponseReceivedHandler;
2162     typedef std::function<void(const EC2Client*, const Model::DescribeSubnetsRequest&, const Model::DescribeSubnetsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeSubnetsResponseReceivedHandler;
2163     typedef std::function<void(const EC2Client*, const Model::DescribeTagsRequest&, const Model::DescribeTagsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeTagsResponseReceivedHandler;
2164     typedef std::function<void(const EC2Client*, const Model::DescribeTrafficMirrorFiltersRequest&, const Model::DescribeTrafficMirrorFiltersOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeTrafficMirrorFiltersResponseReceivedHandler;
2165     typedef std::function<void(const EC2Client*, const Model::DescribeTrafficMirrorSessionsRequest&, const Model::DescribeTrafficMirrorSessionsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeTrafficMirrorSessionsResponseReceivedHandler;
2166     typedef std::function<void(const EC2Client*, const Model::DescribeTrafficMirrorTargetsRequest&, const Model::DescribeTrafficMirrorTargetsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeTrafficMirrorTargetsResponseReceivedHandler;
2167     typedef std::function<void(const EC2Client*, const Model::DescribeTransitGatewayAttachmentsRequest&, const Model::DescribeTransitGatewayAttachmentsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeTransitGatewayAttachmentsResponseReceivedHandler;
2168     typedef std::function<void(const EC2Client*, const Model::DescribeTransitGatewayConnectPeersRequest&, const Model::DescribeTransitGatewayConnectPeersOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeTransitGatewayConnectPeersResponseReceivedHandler;
2169     typedef std::function<void(const EC2Client*, const Model::DescribeTransitGatewayConnectsRequest&, const Model::DescribeTransitGatewayConnectsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeTransitGatewayConnectsResponseReceivedHandler;
2170     typedef std::function<void(const EC2Client*, const Model::DescribeTransitGatewayMulticastDomainsRequest&, const Model::DescribeTransitGatewayMulticastDomainsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeTransitGatewayMulticastDomainsResponseReceivedHandler;
2171     typedef std::function<void(const EC2Client*, const Model::DescribeTransitGatewayPeeringAttachmentsRequest&, const Model::DescribeTransitGatewayPeeringAttachmentsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeTransitGatewayPeeringAttachmentsResponseReceivedHandler;
2172     typedef std::function<void(const EC2Client*, const Model::DescribeTransitGatewayRouteTablesRequest&, const Model::DescribeTransitGatewayRouteTablesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeTransitGatewayRouteTablesResponseReceivedHandler;
2173     typedef std::function<void(const EC2Client*, const Model::DescribeTransitGatewayVpcAttachmentsRequest&, const Model::DescribeTransitGatewayVpcAttachmentsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeTransitGatewayVpcAttachmentsResponseReceivedHandler;
2174     typedef std::function<void(const EC2Client*, const Model::DescribeTransitGatewaysRequest&, const Model::DescribeTransitGatewaysOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeTransitGatewaysResponseReceivedHandler;
2175     typedef std::function<void(const EC2Client*, const Model::DescribeTrunkInterfaceAssociationsRequest&, const Model::DescribeTrunkInterfaceAssociationsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeTrunkInterfaceAssociationsResponseReceivedHandler;
2176     typedef std::function<void(const EC2Client*, const Model::DescribeVolumeAttributeRequest&, const Model::DescribeVolumeAttributeOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeVolumeAttributeResponseReceivedHandler;
2177     typedef std::function<void(const EC2Client*, const Model::DescribeVolumeStatusRequest&, const Model::DescribeVolumeStatusOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeVolumeStatusResponseReceivedHandler;
2178     typedef std::function<void(const EC2Client*, const Model::DescribeVolumesRequest&, const Model::DescribeVolumesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeVolumesResponseReceivedHandler;
2179     typedef std::function<void(const EC2Client*, const Model::DescribeVolumesModificationsRequest&, const Model::DescribeVolumesModificationsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeVolumesModificationsResponseReceivedHandler;
2180     typedef std::function<void(const EC2Client*, const Model::DescribeVpcAttributeRequest&, const Model::DescribeVpcAttributeOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeVpcAttributeResponseReceivedHandler;
2181     typedef std::function<void(const EC2Client*, const Model::DescribeVpcClassicLinkRequest&, const Model::DescribeVpcClassicLinkOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeVpcClassicLinkResponseReceivedHandler;
2182     typedef std::function<void(const EC2Client*, const Model::DescribeVpcClassicLinkDnsSupportRequest&, const Model::DescribeVpcClassicLinkDnsSupportOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeVpcClassicLinkDnsSupportResponseReceivedHandler;
2183     typedef std::function<void(const EC2Client*, const Model::DescribeVpcEndpointConnectionNotificationsRequest&, const Model::DescribeVpcEndpointConnectionNotificationsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeVpcEndpointConnectionNotificationsResponseReceivedHandler;
2184     typedef std::function<void(const EC2Client*, const Model::DescribeVpcEndpointConnectionsRequest&, const Model::DescribeVpcEndpointConnectionsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeVpcEndpointConnectionsResponseReceivedHandler;
2185     typedef std::function<void(const EC2Client*, const Model::DescribeVpcEndpointServiceConfigurationsRequest&, const Model::DescribeVpcEndpointServiceConfigurationsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeVpcEndpointServiceConfigurationsResponseReceivedHandler;
2186     typedef std::function<void(const EC2Client*, const Model::DescribeVpcEndpointServicePermissionsRequest&, const Model::DescribeVpcEndpointServicePermissionsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeVpcEndpointServicePermissionsResponseReceivedHandler;
2187     typedef std::function<void(const EC2Client*, const Model::DescribeVpcEndpointServicesRequest&, const Model::DescribeVpcEndpointServicesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeVpcEndpointServicesResponseReceivedHandler;
2188     typedef std::function<void(const EC2Client*, const Model::DescribeVpcEndpointsRequest&, const Model::DescribeVpcEndpointsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeVpcEndpointsResponseReceivedHandler;
2189     typedef std::function<void(const EC2Client*, const Model::DescribeVpcPeeringConnectionsRequest&, const Model::DescribeVpcPeeringConnectionsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeVpcPeeringConnectionsResponseReceivedHandler;
2190     typedef std::function<void(const EC2Client*, const Model::DescribeVpcsRequest&, const Model::DescribeVpcsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeVpcsResponseReceivedHandler;
2191     typedef std::function<void(const EC2Client*, const Model::DescribeVpnConnectionsRequest&, const Model::DescribeVpnConnectionsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeVpnConnectionsResponseReceivedHandler;
2192     typedef std::function<void(const EC2Client*, const Model::DescribeVpnGatewaysRequest&, const Model::DescribeVpnGatewaysOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeVpnGatewaysResponseReceivedHandler;
2193     typedef std::function<void(const EC2Client*, const Model::DetachClassicLinkVpcRequest&, const Model::DetachClassicLinkVpcOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DetachClassicLinkVpcResponseReceivedHandler;
2194     typedef std::function<void(const EC2Client*, const Model::DetachInternetGatewayRequest&, const Model::DetachInternetGatewayOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DetachInternetGatewayResponseReceivedHandler;
2195     typedef std::function<void(const EC2Client*, const Model::DetachNetworkInterfaceRequest&, const Model::DetachNetworkInterfaceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DetachNetworkInterfaceResponseReceivedHandler;
2196     typedef std::function<void(const EC2Client*, const Model::DetachVolumeRequest&, const Model::DetachVolumeOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DetachVolumeResponseReceivedHandler;
2197     typedef std::function<void(const EC2Client*, const Model::DetachVpnGatewayRequest&, const Model::DetachVpnGatewayOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DetachVpnGatewayResponseReceivedHandler;
2198     typedef std::function<void(const EC2Client*, const Model::DisableEbsEncryptionByDefaultRequest&, const Model::DisableEbsEncryptionByDefaultOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DisableEbsEncryptionByDefaultResponseReceivedHandler;
2199     typedef std::function<void(const EC2Client*, const Model::DisableFastSnapshotRestoresRequest&, const Model::DisableFastSnapshotRestoresOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DisableFastSnapshotRestoresResponseReceivedHandler;
2200     typedef std::function<void(const EC2Client*, const Model::DisableImageDeprecationRequest&, const Model::DisableImageDeprecationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DisableImageDeprecationResponseReceivedHandler;
2201     typedef std::function<void(const EC2Client*, const Model::DisableSerialConsoleAccessRequest&, const Model::DisableSerialConsoleAccessOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DisableSerialConsoleAccessResponseReceivedHandler;
2202     typedef std::function<void(const EC2Client*, const Model::DisableTransitGatewayRouteTablePropagationRequest&, const Model::DisableTransitGatewayRouteTablePropagationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DisableTransitGatewayRouteTablePropagationResponseReceivedHandler;
2203     typedef std::function<void(const EC2Client*, const Model::DisableVgwRoutePropagationRequest&, const Model::DisableVgwRoutePropagationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DisableVgwRoutePropagationResponseReceivedHandler;
2204     typedef std::function<void(const EC2Client*, const Model::DisableVpcClassicLinkRequest&, const Model::DisableVpcClassicLinkOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DisableVpcClassicLinkResponseReceivedHandler;
2205     typedef std::function<void(const EC2Client*, const Model::DisableVpcClassicLinkDnsSupportRequest&, const Model::DisableVpcClassicLinkDnsSupportOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DisableVpcClassicLinkDnsSupportResponseReceivedHandler;
2206     typedef std::function<void(const EC2Client*, const Model::DisassociateAddressRequest&, const Model::DisassociateAddressOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DisassociateAddressResponseReceivedHandler;
2207     typedef std::function<void(const EC2Client*, const Model::DisassociateClientVpnTargetNetworkRequest&, const Model::DisassociateClientVpnTargetNetworkOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DisassociateClientVpnTargetNetworkResponseReceivedHandler;
2208     typedef std::function<void(const EC2Client*, const Model::DisassociateEnclaveCertificateIamRoleRequest&, const Model::DisassociateEnclaveCertificateIamRoleOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DisassociateEnclaveCertificateIamRoleResponseReceivedHandler;
2209     typedef std::function<void(const EC2Client*, const Model::DisassociateIamInstanceProfileRequest&, const Model::DisassociateIamInstanceProfileOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DisassociateIamInstanceProfileResponseReceivedHandler;
2210     typedef std::function<void(const EC2Client*, const Model::DisassociateInstanceEventWindowRequest&, const Model::DisassociateInstanceEventWindowOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DisassociateInstanceEventWindowResponseReceivedHandler;
2211     typedef std::function<void(const EC2Client*, const Model::DisassociateRouteTableRequest&, const Model::DisassociateRouteTableOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DisassociateRouteTableResponseReceivedHandler;
2212     typedef std::function<void(const EC2Client*, const Model::DisassociateSubnetCidrBlockRequest&, const Model::DisassociateSubnetCidrBlockOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DisassociateSubnetCidrBlockResponseReceivedHandler;
2213     typedef std::function<void(const EC2Client*, const Model::DisassociateTransitGatewayMulticastDomainRequest&, const Model::DisassociateTransitGatewayMulticastDomainOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DisassociateTransitGatewayMulticastDomainResponseReceivedHandler;
2214     typedef std::function<void(const EC2Client*, const Model::DisassociateTransitGatewayRouteTableRequest&, const Model::DisassociateTransitGatewayRouteTableOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DisassociateTransitGatewayRouteTableResponseReceivedHandler;
2215     typedef std::function<void(const EC2Client*, const Model::DisassociateTrunkInterfaceRequest&, const Model::DisassociateTrunkInterfaceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DisassociateTrunkInterfaceResponseReceivedHandler;
2216     typedef std::function<void(const EC2Client*, const Model::DisassociateVpcCidrBlockRequest&, const Model::DisassociateVpcCidrBlockOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DisassociateVpcCidrBlockResponseReceivedHandler;
2217     typedef std::function<void(const EC2Client*, const Model::EnableEbsEncryptionByDefaultRequest&, const Model::EnableEbsEncryptionByDefaultOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > EnableEbsEncryptionByDefaultResponseReceivedHandler;
2218     typedef std::function<void(const EC2Client*, const Model::EnableFastSnapshotRestoresRequest&, const Model::EnableFastSnapshotRestoresOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > EnableFastSnapshotRestoresResponseReceivedHandler;
2219     typedef std::function<void(const EC2Client*, const Model::EnableImageDeprecationRequest&, const Model::EnableImageDeprecationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > EnableImageDeprecationResponseReceivedHandler;
2220     typedef std::function<void(const EC2Client*, const Model::EnableSerialConsoleAccessRequest&, const Model::EnableSerialConsoleAccessOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > EnableSerialConsoleAccessResponseReceivedHandler;
2221     typedef std::function<void(const EC2Client*, const Model::EnableTransitGatewayRouteTablePropagationRequest&, const Model::EnableTransitGatewayRouteTablePropagationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > EnableTransitGatewayRouteTablePropagationResponseReceivedHandler;
2222     typedef std::function<void(const EC2Client*, const Model::EnableVgwRoutePropagationRequest&, const Model::EnableVgwRoutePropagationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > EnableVgwRoutePropagationResponseReceivedHandler;
2223     typedef std::function<void(const EC2Client*, const Model::EnableVolumeIORequest&, const Model::EnableVolumeIOOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > EnableVolumeIOResponseReceivedHandler;
2224     typedef std::function<void(const EC2Client*, const Model::EnableVpcClassicLinkRequest&, const Model::EnableVpcClassicLinkOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > EnableVpcClassicLinkResponseReceivedHandler;
2225     typedef std::function<void(const EC2Client*, const Model::EnableVpcClassicLinkDnsSupportRequest&, const Model::EnableVpcClassicLinkDnsSupportOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > EnableVpcClassicLinkDnsSupportResponseReceivedHandler;
2226     typedef std::function<void(const EC2Client*, const Model::ExportClientVpnClientCertificateRevocationListRequest&, const Model::ExportClientVpnClientCertificateRevocationListOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ExportClientVpnClientCertificateRevocationListResponseReceivedHandler;
2227     typedef std::function<void(const EC2Client*, const Model::ExportClientVpnClientConfigurationRequest&, const Model::ExportClientVpnClientConfigurationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ExportClientVpnClientConfigurationResponseReceivedHandler;
2228     typedef std::function<void(const EC2Client*, const Model::ExportImageRequest&, const Model::ExportImageOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ExportImageResponseReceivedHandler;
2229     typedef std::function<void(const EC2Client*, const Model::ExportTransitGatewayRoutesRequest&, const Model::ExportTransitGatewayRoutesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ExportTransitGatewayRoutesResponseReceivedHandler;
2230     typedef std::function<void(const EC2Client*, const Model::GetAssociatedEnclaveCertificateIamRolesRequest&, const Model::GetAssociatedEnclaveCertificateIamRolesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetAssociatedEnclaveCertificateIamRolesResponseReceivedHandler;
2231     typedef std::function<void(const EC2Client*, const Model::GetAssociatedIpv6PoolCidrsRequest&, const Model::GetAssociatedIpv6PoolCidrsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetAssociatedIpv6PoolCidrsResponseReceivedHandler;
2232     typedef std::function<void(const EC2Client*, const Model::GetCapacityReservationUsageRequest&, const Model::GetCapacityReservationUsageOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetCapacityReservationUsageResponseReceivedHandler;
2233     typedef std::function<void(const EC2Client*, const Model::GetCoipPoolUsageRequest&, const Model::GetCoipPoolUsageOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetCoipPoolUsageResponseReceivedHandler;
2234     typedef std::function<void(const EC2Client*, const Model::GetConsoleOutputRequest&, const Model::GetConsoleOutputOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetConsoleOutputResponseReceivedHandler;
2235     typedef std::function<void(const EC2Client*, const Model::GetConsoleScreenshotRequest&, const Model::GetConsoleScreenshotOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetConsoleScreenshotResponseReceivedHandler;
2236     typedef std::function<void(const EC2Client*, const Model::GetDefaultCreditSpecificationRequest&, const Model::GetDefaultCreditSpecificationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetDefaultCreditSpecificationResponseReceivedHandler;
2237     typedef std::function<void(const EC2Client*, const Model::GetEbsDefaultKmsKeyIdRequest&, const Model::GetEbsDefaultKmsKeyIdOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetEbsDefaultKmsKeyIdResponseReceivedHandler;
2238     typedef std::function<void(const EC2Client*, const Model::GetEbsEncryptionByDefaultRequest&, const Model::GetEbsEncryptionByDefaultOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetEbsEncryptionByDefaultResponseReceivedHandler;
2239     typedef std::function<void(const EC2Client*, const Model::GetFlowLogsIntegrationTemplateRequest&, const Model::GetFlowLogsIntegrationTemplateOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetFlowLogsIntegrationTemplateResponseReceivedHandler;
2240     typedef std::function<void(const EC2Client*, const Model::GetGroupsForCapacityReservationRequest&, const Model::GetGroupsForCapacityReservationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetGroupsForCapacityReservationResponseReceivedHandler;
2241     typedef std::function<void(const EC2Client*, const Model::GetHostReservationPurchasePreviewRequest&, const Model::GetHostReservationPurchasePreviewOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetHostReservationPurchasePreviewResponseReceivedHandler;
2242     typedef std::function<void(const EC2Client*, const Model::GetLaunchTemplateDataRequest&, const Model::GetLaunchTemplateDataOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetLaunchTemplateDataResponseReceivedHandler;
2243     typedef std::function<void(const EC2Client*, const Model::GetManagedPrefixListAssociationsRequest&, const Model::GetManagedPrefixListAssociationsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetManagedPrefixListAssociationsResponseReceivedHandler;
2244     typedef std::function<void(const EC2Client*, const Model::GetManagedPrefixListEntriesRequest&, const Model::GetManagedPrefixListEntriesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetManagedPrefixListEntriesResponseReceivedHandler;
2245     typedef std::function<void(const EC2Client*, const Model::GetPasswordDataRequest&, const Model::GetPasswordDataOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetPasswordDataResponseReceivedHandler;
2246     typedef std::function<void(const EC2Client*, const Model::GetReservedInstancesExchangeQuoteRequest&, const Model::GetReservedInstancesExchangeQuoteOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetReservedInstancesExchangeQuoteResponseReceivedHandler;
2247     typedef std::function<void(const EC2Client*, const Model::GetSerialConsoleAccessStatusRequest&, const Model::GetSerialConsoleAccessStatusOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetSerialConsoleAccessStatusResponseReceivedHandler;
2248     typedef std::function<void(const EC2Client*, const Model::GetSubnetCidrReservationsRequest&, const Model::GetSubnetCidrReservationsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetSubnetCidrReservationsResponseReceivedHandler;
2249     typedef std::function<void(const EC2Client*, const Model::GetTransitGatewayAttachmentPropagationsRequest&, const Model::GetTransitGatewayAttachmentPropagationsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetTransitGatewayAttachmentPropagationsResponseReceivedHandler;
2250     typedef std::function<void(const EC2Client*, const Model::GetTransitGatewayMulticastDomainAssociationsRequest&, const Model::GetTransitGatewayMulticastDomainAssociationsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetTransitGatewayMulticastDomainAssociationsResponseReceivedHandler;
2251     typedef std::function<void(const EC2Client*, const Model::GetTransitGatewayPrefixListReferencesRequest&, const Model::GetTransitGatewayPrefixListReferencesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetTransitGatewayPrefixListReferencesResponseReceivedHandler;
2252     typedef std::function<void(const EC2Client*, const Model::GetTransitGatewayRouteTableAssociationsRequest&, const Model::GetTransitGatewayRouteTableAssociationsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetTransitGatewayRouteTableAssociationsResponseReceivedHandler;
2253     typedef std::function<void(const EC2Client*, const Model::GetTransitGatewayRouteTablePropagationsRequest&, const Model::GetTransitGatewayRouteTablePropagationsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetTransitGatewayRouteTablePropagationsResponseReceivedHandler;
2254     typedef std::function<void(const EC2Client*, const Model::GetVpnConnectionDeviceSampleConfigurationRequest&, const Model::GetVpnConnectionDeviceSampleConfigurationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetVpnConnectionDeviceSampleConfigurationResponseReceivedHandler;
2255     typedef std::function<void(const EC2Client*, const Model::GetVpnConnectionDeviceTypesRequest&, const Model::GetVpnConnectionDeviceTypesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetVpnConnectionDeviceTypesResponseReceivedHandler;
2256     typedef std::function<void(const EC2Client*, const Model::ImportClientVpnClientCertificateRevocationListRequest&, const Model::ImportClientVpnClientCertificateRevocationListOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ImportClientVpnClientCertificateRevocationListResponseReceivedHandler;
2257     typedef std::function<void(const EC2Client*, const Model::ImportImageRequest&, const Model::ImportImageOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ImportImageResponseReceivedHandler;
2258     typedef std::function<void(const EC2Client*, const Model::ImportInstanceRequest&, const Model::ImportInstanceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ImportInstanceResponseReceivedHandler;
2259     typedef std::function<void(const EC2Client*, const Model::ImportKeyPairRequest&, const Model::ImportKeyPairOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ImportKeyPairResponseReceivedHandler;
2260     typedef std::function<void(const EC2Client*, const Model::ImportSnapshotRequest&, const Model::ImportSnapshotOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ImportSnapshotResponseReceivedHandler;
2261     typedef std::function<void(const EC2Client*, const Model::ImportVolumeRequest&, const Model::ImportVolumeOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ImportVolumeResponseReceivedHandler;
2262     typedef std::function<void(const EC2Client*, const Model::ModifyAddressAttributeRequest&, const Model::ModifyAddressAttributeOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ModifyAddressAttributeResponseReceivedHandler;
2263     typedef std::function<void(const EC2Client*, const Model::ModifyAvailabilityZoneGroupRequest&, const Model::ModifyAvailabilityZoneGroupOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ModifyAvailabilityZoneGroupResponseReceivedHandler;
2264     typedef std::function<void(const EC2Client*, const Model::ModifyCapacityReservationRequest&, const Model::ModifyCapacityReservationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ModifyCapacityReservationResponseReceivedHandler;
2265     typedef std::function<void(const EC2Client*, const Model::ModifyCapacityReservationFleetRequest&, const Model::ModifyCapacityReservationFleetOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ModifyCapacityReservationFleetResponseReceivedHandler;
2266     typedef std::function<void(const EC2Client*, const Model::ModifyClientVpnEndpointRequest&, const Model::ModifyClientVpnEndpointOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ModifyClientVpnEndpointResponseReceivedHandler;
2267     typedef std::function<void(const EC2Client*, const Model::ModifyDefaultCreditSpecificationRequest&, const Model::ModifyDefaultCreditSpecificationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ModifyDefaultCreditSpecificationResponseReceivedHandler;
2268     typedef std::function<void(const EC2Client*, const Model::ModifyEbsDefaultKmsKeyIdRequest&, const Model::ModifyEbsDefaultKmsKeyIdOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ModifyEbsDefaultKmsKeyIdResponseReceivedHandler;
2269     typedef std::function<void(const EC2Client*, const Model::ModifyFleetRequest&, const Model::ModifyFleetOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ModifyFleetResponseReceivedHandler;
2270     typedef std::function<void(const EC2Client*, const Model::ModifyFpgaImageAttributeRequest&, const Model::ModifyFpgaImageAttributeOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ModifyFpgaImageAttributeResponseReceivedHandler;
2271     typedef std::function<void(const EC2Client*, const Model::ModifyHostsRequest&, const Model::ModifyHostsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ModifyHostsResponseReceivedHandler;
2272     typedef std::function<void(const EC2Client*, const Model::ModifyIdFormatRequest&, const Model::ModifyIdFormatOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ModifyIdFormatResponseReceivedHandler;
2273     typedef std::function<void(const EC2Client*, const Model::ModifyIdentityIdFormatRequest&, const Model::ModifyIdentityIdFormatOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ModifyIdentityIdFormatResponseReceivedHandler;
2274     typedef std::function<void(const EC2Client*, const Model::ModifyImageAttributeRequest&, const Model::ModifyImageAttributeOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ModifyImageAttributeResponseReceivedHandler;
2275     typedef std::function<void(const EC2Client*, const Model::ModifyInstanceAttributeRequest&, const Model::ModifyInstanceAttributeOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ModifyInstanceAttributeResponseReceivedHandler;
2276     typedef std::function<void(const EC2Client*, const Model::ModifyInstanceCapacityReservationAttributesRequest&, const Model::ModifyInstanceCapacityReservationAttributesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ModifyInstanceCapacityReservationAttributesResponseReceivedHandler;
2277     typedef std::function<void(const EC2Client*, const Model::ModifyInstanceCreditSpecificationRequest&, const Model::ModifyInstanceCreditSpecificationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ModifyInstanceCreditSpecificationResponseReceivedHandler;
2278     typedef std::function<void(const EC2Client*, const Model::ModifyInstanceEventStartTimeRequest&, const Model::ModifyInstanceEventStartTimeOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ModifyInstanceEventStartTimeResponseReceivedHandler;
2279     typedef std::function<void(const EC2Client*, const Model::ModifyInstanceEventWindowRequest&, const Model::ModifyInstanceEventWindowOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ModifyInstanceEventWindowResponseReceivedHandler;
2280     typedef std::function<void(const EC2Client*, const Model::ModifyInstanceMetadataOptionsRequest&, const Model::ModifyInstanceMetadataOptionsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ModifyInstanceMetadataOptionsResponseReceivedHandler;
2281     typedef std::function<void(const EC2Client*, const Model::ModifyInstancePlacementRequest&, const Model::ModifyInstancePlacementOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ModifyInstancePlacementResponseReceivedHandler;
2282     typedef std::function<void(const EC2Client*, const Model::ModifyLaunchTemplateRequest&, const Model::ModifyLaunchTemplateOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ModifyLaunchTemplateResponseReceivedHandler;
2283     typedef std::function<void(const EC2Client*, const Model::ModifyManagedPrefixListRequest&, const Model::ModifyManagedPrefixListOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ModifyManagedPrefixListResponseReceivedHandler;
2284     typedef std::function<void(const EC2Client*, const Model::ModifyNetworkInterfaceAttributeRequest&, const Model::ModifyNetworkInterfaceAttributeOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ModifyNetworkInterfaceAttributeResponseReceivedHandler;
2285     typedef std::function<void(const EC2Client*, const Model::ModifyReservedInstancesRequest&, const Model::ModifyReservedInstancesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ModifyReservedInstancesResponseReceivedHandler;
2286     typedef std::function<void(const EC2Client*, const Model::ModifySecurityGroupRulesRequest&, const Model::ModifySecurityGroupRulesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ModifySecurityGroupRulesResponseReceivedHandler;
2287     typedef std::function<void(const EC2Client*, const Model::ModifySnapshotAttributeRequest&, const Model::ModifySnapshotAttributeOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ModifySnapshotAttributeResponseReceivedHandler;
2288     typedef std::function<void(const EC2Client*, const Model::ModifySpotFleetRequestRequest&, const Model::ModifySpotFleetRequestOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ModifySpotFleetRequestResponseReceivedHandler;
2289     typedef std::function<void(const EC2Client*, const Model::ModifySubnetAttributeRequest&, const Model::ModifySubnetAttributeOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ModifySubnetAttributeResponseReceivedHandler;
2290     typedef std::function<void(const EC2Client*, const Model::ModifyTrafficMirrorFilterNetworkServicesRequest&, const Model::ModifyTrafficMirrorFilterNetworkServicesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ModifyTrafficMirrorFilterNetworkServicesResponseReceivedHandler;
2291     typedef std::function<void(const EC2Client*, const Model::ModifyTrafficMirrorFilterRuleRequest&, const Model::ModifyTrafficMirrorFilterRuleOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ModifyTrafficMirrorFilterRuleResponseReceivedHandler;
2292     typedef std::function<void(const EC2Client*, const Model::ModifyTrafficMirrorSessionRequest&, const Model::ModifyTrafficMirrorSessionOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ModifyTrafficMirrorSessionResponseReceivedHandler;
2293     typedef std::function<void(const EC2Client*, const Model::ModifyTransitGatewayRequest&, const Model::ModifyTransitGatewayOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ModifyTransitGatewayResponseReceivedHandler;
2294     typedef std::function<void(const EC2Client*, const Model::ModifyTransitGatewayPrefixListReferenceRequest&, const Model::ModifyTransitGatewayPrefixListReferenceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ModifyTransitGatewayPrefixListReferenceResponseReceivedHandler;
2295     typedef std::function<void(const EC2Client*, const Model::ModifyTransitGatewayVpcAttachmentRequest&, const Model::ModifyTransitGatewayVpcAttachmentOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ModifyTransitGatewayVpcAttachmentResponseReceivedHandler;
2296     typedef std::function<void(const EC2Client*, const Model::ModifyVolumeRequest&, const Model::ModifyVolumeOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ModifyVolumeResponseReceivedHandler;
2297     typedef std::function<void(const EC2Client*, const Model::ModifyVolumeAttributeRequest&, const Model::ModifyVolumeAttributeOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ModifyVolumeAttributeResponseReceivedHandler;
2298     typedef std::function<void(const EC2Client*, const Model::ModifyVpcAttributeRequest&, const Model::ModifyVpcAttributeOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ModifyVpcAttributeResponseReceivedHandler;
2299     typedef std::function<void(const EC2Client*, const Model::ModifyVpcEndpointRequest&, const Model::ModifyVpcEndpointOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ModifyVpcEndpointResponseReceivedHandler;
2300     typedef std::function<void(const EC2Client*, const Model::ModifyVpcEndpointConnectionNotificationRequest&, const Model::ModifyVpcEndpointConnectionNotificationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ModifyVpcEndpointConnectionNotificationResponseReceivedHandler;
2301     typedef std::function<void(const EC2Client*, const Model::ModifyVpcEndpointServiceConfigurationRequest&, const Model::ModifyVpcEndpointServiceConfigurationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ModifyVpcEndpointServiceConfigurationResponseReceivedHandler;
2302     typedef std::function<void(const EC2Client*, const Model::ModifyVpcEndpointServicePermissionsRequest&, const Model::ModifyVpcEndpointServicePermissionsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ModifyVpcEndpointServicePermissionsResponseReceivedHandler;
2303     typedef std::function<void(const EC2Client*, const Model::ModifyVpcPeeringConnectionOptionsRequest&, const Model::ModifyVpcPeeringConnectionOptionsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ModifyVpcPeeringConnectionOptionsResponseReceivedHandler;
2304     typedef std::function<void(const EC2Client*, const Model::ModifyVpcTenancyRequest&, const Model::ModifyVpcTenancyOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ModifyVpcTenancyResponseReceivedHandler;
2305     typedef std::function<void(const EC2Client*, const Model::ModifyVpnConnectionRequest&, const Model::ModifyVpnConnectionOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ModifyVpnConnectionResponseReceivedHandler;
2306     typedef std::function<void(const EC2Client*, const Model::ModifyVpnConnectionOptionsRequest&, const Model::ModifyVpnConnectionOptionsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ModifyVpnConnectionOptionsResponseReceivedHandler;
2307     typedef std::function<void(const EC2Client*, const Model::ModifyVpnTunnelCertificateRequest&, const Model::ModifyVpnTunnelCertificateOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ModifyVpnTunnelCertificateResponseReceivedHandler;
2308     typedef std::function<void(const EC2Client*, const Model::ModifyVpnTunnelOptionsRequest&, const Model::ModifyVpnTunnelOptionsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ModifyVpnTunnelOptionsResponseReceivedHandler;
2309     typedef std::function<void(const EC2Client*, const Model::MonitorInstancesRequest&, const Model::MonitorInstancesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > MonitorInstancesResponseReceivedHandler;
2310     typedef std::function<void(const EC2Client*, const Model::MoveAddressToVpcRequest&, const Model::MoveAddressToVpcOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > MoveAddressToVpcResponseReceivedHandler;
2311     typedef std::function<void(const EC2Client*, const Model::ProvisionByoipCidrRequest&, const Model::ProvisionByoipCidrOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ProvisionByoipCidrResponseReceivedHandler;
2312     typedef std::function<void(const EC2Client*, const Model::PurchaseHostReservationRequest&, const Model::PurchaseHostReservationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PurchaseHostReservationResponseReceivedHandler;
2313     typedef std::function<void(const EC2Client*, const Model::PurchaseReservedInstancesOfferingRequest&, const Model::PurchaseReservedInstancesOfferingOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PurchaseReservedInstancesOfferingResponseReceivedHandler;
2314     typedef std::function<void(const EC2Client*, const Model::PurchaseScheduledInstancesRequest&, const Model::PurchaseScheduledInstancesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PurchaseScheduledInstancesResponseReceivedHandler;
2315     typedef std::function<void(const EC2Client*, const Model::RebootInstancesRequest&, const Model::RebootInstancesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > RebootInstancesResponseReceivedHandler;
2316     typedef std::function<void(const EC2Client*, const Model::RegisterImageRequest&, const Model::RegisterImageOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > RegisterImageResponseReceivedHandler;
2317     typedef std::function<void(const EC2Client*, const Model::RegisterInstanceEventNotificationAttributesRequest&, const Model::RegisterInstanceEventNotificationAttributesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > RegisterInstanceEventNotificationAttributesResponseReceivedHandler;
2318     typedef std::function<void(const EC2Client*, const Model::RegisterTransitGatewayMulticastGroupMembersRequest&, const Model::RegisterTransitGatewayMulticastGroupMembersOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > RegisterTransitGatewayMulticastGroupMembersResponseReceivedHandler;
2319     typedef std::function<void(const EC2Client*, const Model::RegisterTransitGatewayMulticastGroupSourcesRequest&, const Model::RegisterTransitGatewayMulticastGroupSourcesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > RegisterTransitGatewayMulticastGroupSourcesResponseReceivedHandler;
2320     typedef std::function<void(const EC2Client*, const Model::RejectTransitGatewayMulticastDomainAssociationsRequest&, const Model::RejectTransitGatewayMulticastDomainAssociationsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > RejectTransitGatewayMulticastDomainAssociationsResponseReceivedHandler;
2321     typedef std::function<void(const EC2Client*, const Model::RejectTransitGatewayPeeringAttachmentRequest&, const Model::RejectTransitGatewayPeeringAttachmentOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > RejectTransitGatewayPeeringAttachmentResponseReceivedHandler;
2322     typedef std::function<void(const EC2Client*, const Model::RejectTransitGatewayVpcAttachmentRequest&, const Model::RejectTransitGatewayVpcAttachmentOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > RejectTransitGatewayVpcAttachmentResponseReceivedHandler;
2323     typedef std::function<void(const EC2Client*, const Model::RejectVpcEndpointConnectionsRequest&, const Model::RejectVpcEndpointConnectionsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > RejectVpcEndpointConnectionsResponseReceivedHandler;
2324     typedef std::function<void(const EC2Client*, const Model::RejectVpcPeeringConnectionRequest&, const Model::RejectVpcPeeringConnectionOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > RejectVpcPeeringConnectionResponseReceivedHandler;
2325     typedef std::function<void(const EC2Client*, const Model::ReleaseAddressRequest&, const Model::ReleaseAddressOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ReleaseAddressResponseReceivedHandler;
2326     typedef std::function<void(const EC2Client*, const Model::ReleaseHostsRequest&, const Model::ReleaseHostsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ReleaseHostsResponseReceivedHandler;
2327     typedef std::function<void(const EC2Client*, const Model::ReplaceIamInstanceProfileAssociationRequest&, const Model::ReplaceIamInstanceProfileAssociationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ReplaceIamInstanceProfileAssociationResponseReceivedHandler;
2328     typedef std::function<void(const EC2Client*, const Model::ReplaceNetworkAclAssociationRequest&, const Model::ReplaceNetworkAclAssociationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ReplaceNetworkAclAssociationResponseReceivedHandler;
2329     typedef std::function<void(const EC2Client*, const Model::ReplaceNetworkAclEntryRequest&, const Model::ReplaceNetworkAclEntryOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ReplaceNetworkAclEntryResponseReceivedHandler;
2330     typedef std::function<void(const EC2Client*, const Model::ReplaceRouteRequest&, const Model::ReplaceRouteOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ReplaceRouteResponseReceivedHandler;
2331     typedef std::function<void(const EC2Client*, const Model::ReplaceRouteTableAssociationRequest&, const Model::ReplaceRouteTableAssociationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ReplaceRouteTableAssociationResponseReceivedHandler;
2332     typedef std::function<void(const EC2Client*, const Model::ReplaceTransitGatewayRouteRequest&, const Model::ReplaceTransitGatewayRouteOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ReplaceTransitGatewayRouteResponseReceivedHandler;
2333     typedef std::function<void(const EC2Client*, const Model::ReportInstanceStatusRequest&, const Model::ReportInstanceStatusOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ReportInstanceStatusResponseReceivedHandler;
2334     typedef std::function<void(const EC2Client*, const Model::RequestSpotFleetRequest&, const Model::RequestSpotFleetOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > RequestSpotFleetResponseReceivedHandler;
2335     typedef std::function<void(const EC2Client*, const Model::RequestSpotInstancesRequest&, const Model::RequestSpotInstancesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > RequestSpotInstancesResponseReceivedHandler;
2336     typedef std::function<void(const EC2Client*, const Model::ResetAddressAttributeRequest&, const Model::ResetAddressAttributeOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ResetAddressAttributeResponseReceivedHandler;
2337     typedef std::function<void(const EC2Client*, const Model::ResetEbsDefaultKmsKeyIdRequest&, const Model::ResetEbsDefaultKmsKeyIdOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ResetEbsDefaultKmsKeyIdResponseReceivedHandler;
2338     typedef std::function<void(const EC2Client*, const Model::ResetFpgaImageAttributeRequest&, const Model::ResetFpgaImageAttributeOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ResetFpgaImageAttributeResponseReceivedHandler;
2339     typedef std::function<void(const EC2Client*, const Model::ResetImageAttributeRequest&, const Model::ResetImageAttributeOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ResetImageAttributeResponseReceivedHandler;
2340     typedef std::function<void(const EC2Client*, const Model::ResetInstanceAttributeRequest&, const Model::ResetInstanceAttributeOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ResetInstanceAttributeResponseReceivedHandler;
2341     typedef std::function<void(const EC2Client*, const Model::ResetNetworkInterfaceAttributeRequest&, const Model::ResetNetworkInterfaceAttributeOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ResetNetworkInterfaceAttributeResponseReceivedHandler;
2342     typedef std::function<void(const EC2Client*, const Model::ResetSnapshotAttributeRequest&, const Model::ResetSnapshotAttributeOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ResetSnapshotAttributeResponseReceivedHandler;
2343     typedef std::function<void(const EC2Client*, const Model::RestoreAddressToClassicRequest&, const Model::RestoreAddressToClassicOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > RestoreAddressToClassicResponseReceivedHandler;
2344     typedef std::function<void(const EC2Client*, const Model::RestoreManagedPrefixListVersionRequest&, const Model::RestoreManagedPrefixListVersionOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > RestoreManagedPrefixListVersionResponseReceivedHandler;
2345     typedef std::function<void(const EC2Client*, const Model::RevokeClientVpnIngressRequest&, const Model::RevokeClientVpnIngressOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > RevokeClientVpnIngressResponseReceivedHandler;
2346     typedef std::function<void(const EC2Client*, const Model::RevokeSecurityGroupEgressRequest&, const Model::RevokeSecurityGroupEgressOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > RevokeSecurityGroupEgressResponseReceivedHandler;
2347     typedef std::function<void(const EC2Client*, const Model::RevokeSecurityGroupIngressRequest&, const Model::RevokeSecurityGroupIngressOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > RevokeSecurityGroupIngressResponseReceivedHandler;
2348     typedef std::function<void(const EC2Client*, const Model::RunInstancesRequest&, const Model::RunInstancesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > RunInstancesResponseReceivedHandler;
2349     typedef std::function<void(const EC2Client*, const Model::RunScheduledInstancesRequest&, const Model::RunScheduledInstancesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > RunScheduledInstancesResponseReceivedHandler;
2350     typedef std::function<void(const EC2Client*, const Model::SearchLocalGatewayRoutesRequest&, const Model::SearchLocalGatewayRoutesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > SearchLocalGatewayRoutesResponseReceivedHandler;
2351     typedef std::function<void(const EC2Client*, const Model::SearchTransitGatewayMulticastGroupsRequest&, const Model::SearchTransitGatewayMulticastGroupsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > SearchTransitGatewayMulticastGroupsResponseReceivedHandler;
2352     typedef std::function<void(const EC2Client*, const Model::SearchTransitGatewayRoutesRequest&, const Model::SearchTransitGatewayRoutesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > SearchTransitGatewayRoutesResponseReceivedHandler;
2353     typedef std::function<void(const EC2Client*, const Model::SendDiagnosticInterruptRequest&, const Model::SendDiagnosticInterruptOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > SendDiagnosticInterruptResponseReceivedHandler;
2354     typedef std::function<void(const EC2Client*, const Model::StartInstancesRequest&, const Model::StartInstancesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > StartInstancesResponseReceivedHandler;
2355     typedef std::function<void(const EC2Client*, const Model::StartNetworkInsightsAnalysisRequest&, const Model::StartNetworkInsightsAnalysisOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > StartNetworkInsightsAnalysisResponseReceivedHandler;
2356     typedef std::function<void(const EC2Client*, const Model::StartVpcEndpointServicePrivateDnsVerificationRequest&, const Model::StartVpcEndpointServicePrivateDnsVerificationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > StartVpcEndpointServicePrivateDnsVerificationResponseReceivedHandler;
2357     typedef std::function<void(const EC2Client*, const Model::StopInstancesRequest&, const Model::StopInstancesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > StopInstancesResponseReceivedHandler;
2358     typedef std::function<void(const EC2Client*, const Model::TerminateClientVpnConnectionsRequest&, const Model::TerminateClientVpnConnectionsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > TerminateClientVpnConnectionsResponseReceivedHandler;
2359     typedef std::function<void(const EC2Client*, const Model::TerminateInstancesRequest&, const Model::TerminateInstancesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > TerminateInstancesResponseReceivedHandler;
2360     typedef std::function<void(const EC2Client*, const Model::UnassignIpv6AddressesRequest&, const Model::UnassignIpv6AddressesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UnassignIpv6AddressesResponseReceivedHandler;
2361     typedef std::function<void(const EC2Client*, const Model::UnassignPrivateIpAddressesRequest&, const Model::UnassignPrivateIpAddressesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UnassignPrivateIpAddressesResponseReceivedHandler;
2362     typedef std::function<void(const EC2Client*, const Model::UnmonitorInstancesRequest&, const Model::UnmonitorInstancesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UnmonitorInstancesResponseReceivedHandler;
2363     typedef std::function<void(const EC2Client*, const Model::UpdateSecurityGroupRuleDescriptionsEgressRequest&, const Model::UpdateSecurityGroupRuleDescriptionsEgressOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UpdateSecurityGroupRuleDescriptionsEgressResponseReceivedHandler;
2364     typedef std::function<void(const EC2Client*, const Model::UpdateSecurityGroupRuleDescriptionsIngressRequest&, const Model::UpdateSecurityGroupRuleDescriptionsIngressOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UpdateSecurityGroupRuleDescriptionsIngressResponseReceivedHandler;
2365     typedef std::function<void(const EC2Client*, const Model::WithdrawByoipCidrRequest&, const Model::WithdrawByoipCidrOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > WithdrawByoipCidrResponseReceivedHandler;
2366 
2367   /**
2368    * <fullname>Amazon Elastic Compute Cloud</fullname> <p>Amazon Elastic Compute
2369    * Cloud (Amazon EC2) provides secure and resizable computing capacity in the AWS
2370    * Cloud. Using Amazon EC2 eliminates the need to invest in hardware up front, so
2371    * you can develop and deploy applications faster. Amazon Virtual Private Cloud
2372    * (Amazon VPC) enables you to provision a logically isolated section of the AWS
2373    * Cloud where you can launch AWS resources in a virtual network that you've
2374    * defined. Amazon Elastic Block Store (Amazon EBS) provides block level storage
2375    * volumes for use with EC2 instances. EBS volumes are highly available and
2376    * reliable storage volumes that can be attached to any running instance and used
2377    * like a hard drive.</p> <p>To learn more, see the following resources:</p> <ul>
2378    * <li> <p>Amazon EC2: <a href="http://aws.amazon.com/ec2">AmazonEC2 product
2379    * page</a>, <a href="http://aws.amazon.com/documentation/ec2">Amazon EC2
2380    * documentation</a> </p> </li> <li> <p>Amazon EBS: <a
2381    * href="http://aws.amazon.com/ebs">Amazon EBS product page</a>, <a
2382    * href="http://aws.amazon.com/documentation/ebs">Amazon EBS documentation</a> </p>
2383    * </li> <li> <p>Amazon VPC: <a href="http://aws.amazon.com/vpc">Amazon VPC product
2384    * page</a>, <a href="http://aws.amazon.com/documentation/vpc">Amazon VPC
2385    * documentation</a> </p> </li> <li> <p>AWS VPN: <a
2386    * href="http://aws.amazon.com/vpn">AWS VPN product page</a>, <a
2387    * href="http://aws.amazon.com/documentation/vpn">AWS VPN documentation</a> </p>
2388    * </li> </ul>
2389    */
2390   class AWS_EC2_API EC2Client : public Aws::Client::AWSXMLClient
2391   {
2392     public:
2393       typedef Aws::Client::AWSXMLClient BASECLASS;
2394 
2395        /**
2396         * Initializes client to use DefaultCredentialProviderChain, with default http client factory, and optional client config. If client config
2397         * is not specified, it will be initialized to default values.
2398         */
2399         EC2Client(const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration());
2400 
2401        /**
2402         * Initializes client to use SimpleAWSCredentialsProvider, with default http client factory, and optional client config. If client config
2403         * is not specified, it will be initialized to default values.
2404         */
2405         EC2Client(const Aws::Auth::AWSCredentials& credentials, const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration());
2406 
2407        /**
2408         * Initializes client to use specified credentials provider with specified client config. If http client factory is not supplied,
2409         * the default http client factory will be used
2410         */
2411         EC2Client(const std::shared_ptr<Aws::Auth::AWSCredentialsProvider>& credentialsProvider,
2412             const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration());
2413 
2414         virtual ~EC2Client();
2415 
2416 
2417         /**
2418          * <p>Accepts the Convertible Reserved Instance exchange quote described in the
2419          * <a>GetReservedInstancesExchangeQuote</a> call.</p><p><h3>See Also:</h3>   <a
2420          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AcceptReservedInstancesExchangeQuote">AWS
2421          * API Reference</a></p>
2422          */
2423         virtual Model::AcceptReservedInstancesExchangeQuoteOutcome AcceptReservedInstancesExchangeQuote(const Model::AcceptReservedInstancesExchangeQuoteRequest& request) const;
2424 
2425         /**
2426          * <p>Accepts the Convertible Reserved Instance exchange quote described in the
2427          * <a>GetReservedInstancesExchangeQuote</a> call.</p><p><h3>See Also:</h3>   <a
2428          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AcceptReservedInstancesExchangeQuote">AWS
2429          * API Reference</a></p>
2430          *
2431          * returns a future to the operation so that it can be executed in parallel to other requests.
2432          */
2433         virtual Model::AcceptReservedInstancesExchangeQuoteOutcomeCallable AcceptReservedInstancesExchangeQuoteCallable(const Model::AcceptReservedInstancesExchangeQuoteRequest& request) const;
2434 
2435         /**
2436          * <p>Accepts the Convertible Reserved Instance exchange quote described in the
2437          * <a>GetReservedInstancesExchangeQuote</a> call.</p><p><h3>See Also:</h3>   <a
2438          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AcceptReservedInstancesExchangeQuote">AWS
2439          * API Reference</a></p>
2440          *
2441          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2442          */
2443         virtual void AcceptReservedInstancesExchangeQuoteAsync(const Model::AcceptReservedInstancesExchangeQuoteRequest& request, const AcceptReservedInstancesExchangeQuoteResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2444 
2445         /**
2446          * <p>Accepts a request to associate subnets with a transit gateway multicast
2447          * domain.</p><p><h3>See Also:</h3>   <a
2448          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AcceptTransitGatewayMulticastDomainAssociations">AWS
2449          * API Reference</a></p>
2450          */
2451         virtual Model::AcceptTransitGatewayMulticastDomainAssociationsOutcome AcceptTransitGatewayMulticastDomainAssociations(const Model::AcceptTransitGatewayMulticastDomainAssociationsRequest& request) const;
2452 
2453         /**
2454          * <p>Accepts a request to associate subnets with a transit gateway multicast
2455          * domain.</p><p><h3>See Also:</h3>   <a
2456          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AcceptTransitGatewayMulticastDomainAssociations">AWS
2457          * API Reference</a></p>
2458          *
2459          * returns a future to the operation so that it can be executed in parallel to other requests.
2460          */
2461         virtual Model::AcceptTransitGatewayMulticastDomainAssociationsOutcomeCallable AcceptTransitGatewayMulticastDomainAssociationsCallable(const Model::AcceptTransitGatewayMulticastDomainAssociationsRequest& request) const;
2462 
2463         /**
2464          * <p>Accepts a request to associate subnets with a transit gateway multicast
2465          * domain.</p><p><h3>See Also:</h3>   <a
2466          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AcceptTransitGatewayMulticastDomainAssociations">AWS
2467          * API Reference</a></p>
2468          *
2469          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2470          */
2471         virtual void AcceptTransitGatewayMulticastDomainAssociationsAsync(const Model::AcceptTransitGatewayMulticastDomainAssociationsRequest& request, const AcceptTransitGatewayMulticastDomainAssociationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2472 
2473         /**
2474          * <p>Accepts a transit gateway peering attachment request. The peering attachment
2475          * must be in the <code>pendingAcceptance</code> state.</p><p><h3>See Also:</h3>
2476          * <a
2477          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AcceptTransitGatewayPeeringAttachment">AWS
2478          * API Reference</a></p>
2479          */
2480         virtual Model::AcceptTransitGatewayPeeringAttachmentOutcome AcceptTransitGatewayPeeringAttachment(const Model::AcceptTransitGatewayPeeringAttachmentRequest& request) const;
2481 
2482         /**
2483          * <p>Accepts a transit gateway peering attachment request. The peering attachment
2484          * must be in the <code>pendingAcceptance</code> state.</p><p><h3>See Also:</h3>
2485          * <a
2486          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AcceptTransitGatewayPeeringAttachment">AWS
2487          * API Reference</a></p>
2488          *
2489          * returns a future to the operation so that it can be executed in parallel to other requests.
2490          */
2491         virtual Model::AcceptTransitGatewayPeeringAttachmentOutcomeCallable AcceptTransitGatewayPeeringAttachmentCallable(const Model::AcceptTransitGatewayPeeringAttachmentRequest& request) const;
2492 
2493         /**
2494          * <p>Accepts a transit gateway peering attachment request. The peering attachment
2495          * must be in the <code>pendingAcceptance</code> state.</p><p><h3>See Also:</h3>
2496          * <a
2497          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AcceptTransitGatewayPeeringAttachment">AWS
2498          * API Reference</a></p>
2499          *
2500          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2501          */
2502         virtual void AcceptTransitGatewayPeeringAttachmentAsync(const Model::AcceptTransitGatewayPeeringAttachmentRequest& request, const AcceptTransitGatewayPeeringAttachmentResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2503 
2504         /**
2505          * <p>Accepts a request to attach a VPC to a transit gateway.</p> <p>The VPC
2506          * attachment must be in the <code>pendingAcceptance</code> state. Use
2507          * <a>DescribeTransitGatewayVpcAttachments</a> to view your pending VPC attachment
2508          * requests. Use <a>RejectTransitGatewayVpcAttachment</a> to reject a VPC
2509          * attachment request.</p><p><h3>See Also:</h3>   <a
2510          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AcceptTransitGatewayVpcAttachment">AWS
2511          * API Reference</a></p>
2512          */
2513         virtual Model::AcceptTransitGatewayVpcAttachmentOutcome AcceptTransitGatewayVpcAttachment(const Model::AcceptTransitGatewayVpcAttachmentRequest& request) const;
2514 
2515         /**
2516          * <p>Accepts a request to attach a VPC to a transit gateway.</p> <p>The VPC
2517          * attachment must be in the <code>pendingAcceptance</code> state. Use
2518          * <a>DescribeTransitGatewayVpcAttachments</a> to view your pending VPC attachment
2519          * requests. Use <a>RejectTransitGatewayVpcAttachment</a> to reject a VPC
2520          * attachment request.</p><p><h3>See Also:</h3>   <a
2521          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AcceptTransitGatewayVpcAttachment">AWS
2522          * API Reference</a></p>
2523          *
2524          * returns a future to the operation so that it can be executed in parallel to other requests.
2525          */
2526         virtual Model::AcceptTransitGatewayVpcAttachmentOutcomeCallable AcceptTransitGatewayVpcAttachmentCallable(const Model::AcceptTransitGatewayVpcAttachmentRequest& request) const;
2527 
2528         /**
2529          * <p>Accepts a request to attach a VPC to a transit gateway.</p> <p>The VPC
2530          * attachment must be in the <code>pendingAcceptance</code> state. Use
2531          * <a>DescribeTransitGatewayVpcAttachments</a> to view your pending VPC attachment
2532          * requests. Use <a>RejectTransitGatewayVpcAttachment</a> to reject a VPC
2533          * attachment request.</p><p><h3>See Also:</h3>   <a
2534          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AcceptTransitGatewayVpcAttachment">AWS
2535          * API Reference</a></p>
2536          *
2537          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2538          */
2539         virtual void AcceptTransitGatewayVpcAttachmentAsync(const Model::AcceptTransitGatewayVpcAttachmentRequest& request, const AcceptTransitGatewayVpcAttachmentResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2540 
2541         /**
2542          * <p>Accepts one or more interface VPC endpoint connection requests to your VPC
2543          * endpoint service.</p><p><h3>See Also:</h3>   <a
2544          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AcceptVpcEndpointConnections">AWS
2545          * API Reference</a></p>
2546          */
2547         virtual Model::AcceptVpcEndpointConnectionsOutcome AcceptVpcEndpointConnections(const Model::AcceptVpcEndpointConnectionsRequest& request) const;
2548 
2549         /**
2550          * <p>Accepts one or more interface VPC endpoint connection requests to your VPC
2551          * endpoint service.</p><p><h3>See Also:</h3>   <a
2552          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AcceptVpcEndpointConnections">AWS
2553          * API Reference</a></p>
2554          *
2555          * returns a future to the operation so that it can be executed in parallel to other requests.
2556          */
2557         virtual Model::AcceptVpcEndpointConnectionsOutcomeCallable AcceptVpcEndpointConnectionsCallable(const Model::AcceptVpcEndpointConnectionsRequest& request) const;
2558 
2559         /**
2560          * <p>Accepts one or more interface VPC endpoint connection requests to your VPC
2561          * endpoint service.</p><p><h3>See Also:</h3>   <a
2562          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AcceptVpcEndpointConnections">AWS
2563          * API Reference</a></p>
2564          *
2565          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2566          */
2567         virtual void AcceptVpcEndpointConnectionsAsync(const Model::AcceptVpcEndpointConnectionsRequest& request, const AcceptVpcEndpointConnectionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2568 
2569         /**
2570          * <p>Accept a VPC peering connection request. To accept a request, the VPC peering
2571          * connection must be in the <code>pending-acceptance</code> state, and you must be
2572          * the owner of the peer VPC. Use <a>DescribeVpcPeeringConnections</a> to view your
2573          * outstanding VPC peering connection requests.</p> <p>For an inter-Region VPC
2574          * peering connection request, you must accept the VPC peering connection in the
2575          * Region of the accepter VPC.</p><p><h3>See Also:</h3>   <a
2576          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AcceptVpcPeeringConnection">AWS
2577          * API Reference</a></p>
2578          */
2579         virtual Model::AcceptVpcPeeringConnectionOutcome AcceptVpcPeeringConnection(const Model::AcceptVpcPeeringConnectionRequest& request) const;
2580 
2581         /**
2582          * <p>Accept a VPC peering connection request. To accept a request, the VPC peering
2583          * connection must be in the <code>pending-acceptance</code> state, and you must be
2584          * the owner of the peer VPC. Use <a>DescribeVpcPeeringConnections</a> to view your
2585          * outstanding VPC peering connection requests.</p> <p>For an inter-Region VPC
2586          * peering connection request, you must accept the VPC peering connection in the
2587          * Region of the accepter VPC.</p><p><h3>See Also:</h3>   <a
2588          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AcceptVpcPeeringConnection">AWS
2589          * API Reference</a></p>
2590          *
2591          * returns a future to the operation so that it can be executed in parallel to other requests.
2592          */
2593         virtual Model::AcceptVpcPeeringConnectionOutcomeCallable AcceptVpcPeeringConnectionCallable(const Model::AcceptVpcPeeringConnectionRequest& request) const;
2594 
2595         /**
2596          * <p>Accept a VPC peering connection request. To accept a request, the VPC peering
2597          * connection must be in the <code>pending-acceptance</code> state, and you must be
2598          * the owner of the peer VPC. Use <a>DescribeVpcPeeringConnections</a> to view your
2599          * outstanding VPC peering connection requests.</p> <p>For an inter-Region VPC
2600          * peering connection request, you must accept the VPC peering connection in the
2601          * Region of the accepter VPC.</p><p><h3>See Also:</h3>   <a
2602          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AcceptVpcPeeringConnection">AWS
2603          * API Reference</a></p>
2604          *
2605          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2606          */
2607         virtual void AcceptVpcPeeringConnectionAsync(const Model::AcceptVpcPeeringConnectionRequest& request, const AcceptVpcPeeringConnectionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2608 
2609         /**
2610          * <p>Advertises an IPv4 or IPv6 address range that is provisioned for use with
2611          * your Amazon Web Services resources through bring your own IP addresses
2612          * (BYOIP).</p> <p>You can perform this operation at most once every 10 seconds,
2613          * even if you specify different address ranges each time.</p> <p>We recommend that
2614          * you stop advertising the BYOIP CIDR from other locations when you advertise it
2615          * from Amazon Web Services. To minimize down time, you can configure your Amazon
2616          * Web Services resources to use an address from a BYOIP CIDR before it is
2617          * advertised, and then simultaneously stop advertising it from the current
2618          * location and start advertising it through Amazon Web Services.</p> <p>It can
2619          * take a few minutes before traffic to the specified addresses starts routing to
2620          * Amazon Web Services because of BGP propagation delays.</p> <p>To stop
2621          * advertising the BYOIP CIDR, use <a>WithdrawByoipCidr</a>.</p><p><h3>See
2622          * Also:</h3>   <a
2623          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AdvertiseByoipCidr">AWS
2624          * API Reference</a></p>
2625          */
2626         virtual Model::AdvertiseByoipCidrOutcome AdvertiseByoipCidr(const Model::AdvertiseByoipCidrRequest& request) const;
2627 
2628         /**
2629          * <p>Advertises an IPv4 or IPv6 address range that is provisioned for use with
2630          * your Amazon Web Services resources through bring your own IP addresses
2631          * (BYOIP).</p> <p>You can perform this operation at most once every 10 seconds,
2632          * even if you specify different address ranges each time.</p> <p>We recommend that
2633          * you stop advertising the BYOIP CIDR from other locations when you advertise it
2634          * from Amazon Web Services. To minimize down time, you can configure your Amazon
2635          * Web Services resources to use an address from a BYOIP CIDR before it is
2636          * advertised, and then simultaneously stop advertising it from the current
2637          * location and start advertising it through Amazon Web Services.</p> <p>It can
2638          * take a few minutes before traffic to the specified addresses starts routing to
2639          * Amazon Web Services because of BGP propagation delays.</p> <p>To stop
2640          * advertising the BYOIP CIDR, use <a>WithdrawByoipCidr</a>.</p><p><h3>See
2641          * Also:</h3>   <a
2642          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AdvertiseByoipCidr">AWS
2643          * API Reference</a></p>
2644          *
2645          * returns a future to the operation so that it can be executed in parallel to other requests.
2646          */
2647         virtual Model::AdvertiseByoipCidrOutcomeCallable AdvertiseByoipCidrCallable(const Model::AdvertiseByoipCidrRequest& request) const;
2648 
2649         /**
2650          * <p>Advertises an IPv4 or IPv6 address range that is provisioned for use with
2651          * your Amazon Web Services resources through bring your own IP addresses
2652          * (BYOIP).</p> <p>You can perform this operation at most once every 10 seconds,
2653          * even if you specify different address ranges each time.</p> <p>We recommend that
2654          * you stop advertising the BYOIP CIDR from other locations when you advertise it
2655          * from Amazon Web Services. To minimize down time, you can configure your Amazon
2656          * Web Services resources to use an address from a BYOIP CIDR before it is
2657          * advertised, and then simultaneously stop advertising it from the current
2658          * location and start advertising it through Amazon Web Services.</p> <p>It can
2659          * take a few minutes before traffic to the specified addresses starts routing to
2660          * Amazon Web Services because of BGP propagation delays.</p> <p>To stop
2661          * advertising the BYOIP CIDR, use <a>WithdrawByoipCidr</a>.</p><p><h3>See
2662          * Also:</h3>   <a
2663          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AdvertiseByoipCidr">AWS
2664          * API Reference</a></p>
2665          *
2666          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2667          */
2668         virtual void AdvertiseByoipCidrAsync(const Model::AdvertiseByoipCidrRequest& request, const AdvertiseByoipCidrResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2669 
2670         /**
2671          * <p>Allocates an Elastic IP address to your Amazon Web Services account. After
2672          * you allocate the Elastic IP address you can associate it with an instance or
2673          * network interface. After you release an Elastic IP address, it is released to
2674          * the IP address pool and can be allocated to a different Amazon Web Services
2675          * account.</p> <p>You can allocate an Elastic IP address from an address pool
2676          * owned by Amazon Web Services or from an address pool created from a public IPv4
2677          * address range that you have brought to Amazon Web Services for use with your
2678          * Amazon Web Services resources using bring your own IP addresses (BYOIP). For
2679          * more information, see <a
2680          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-byoip.html">Bring
2681          * Your Own IP Addresses (BYOIP)</a> in the <i>Amazon Elastic Compute Cloud User
2682          * Guide</i>.</p> <p>[EC2-VPC] If you release an Elastic IP address, you might be
2683          * able to recover it. You cannot recover an Elastic IP address that you released
2684          * after it is allocated to another Amazon Web Services account. You cannot recover
2685          * an Elastic IP address for EC2-Classic. To attempt to recover an Elastic IP
2686          * address that you released, specify it in this operation.</p> <p>An Elastic IP
2687          * address is for use either in the EC2-Classic platform or in a VPC. By default,
2688          * you can allocate 5 Elastic IP addresses for EC2-Classic per Region and 5 Elastic
2689          * IP addresses for EC2-VPC per Region.</p> <p>For more information, see <a
2690          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html">Elastic
2691          * IP Addresses</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>
2692          * <p>You can allocate a carrier IP address which is a public IP address from a
2693          * telecommunication carrier, to a network interface which resides in a subnet in a
2694          * Wavelength Zone (for example an EC2 instance). </p><p><h3>See Also:</h3>   <a
2695          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AllocateAddress">AWS
2696          * API Reference</a></p>
2697          */
2698         virtual Model::AllocateAddressOutcome AllocateAddress(const Model::AllocateAddressRequest& request) const;
2699 
2700         /**
2701          * <p>Allocates an Elastic IP address to your Amazon Web Services account. After
2702          * you allocate the Elastic IP address you can associate it with an instance or
2703          * network interface. After you release an Elastic IP address, it is released to
2704          * the IP address pool and can be allocated to a different Amazon Web Services
2705          * account.</p> <p>You can allocate an Elastic IP address from an address pool
2706          * owned by Amazon Web Services or from an address pool created from a public IPv4
2707          * address range that you have brought to Amazon Web Services for use with your
2708          * Amazon Web Services resources using bring your own IP addresses (BYOIP). For
2709          * more information, see <a
2710          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-byoip.html">Bring
2711          * Your Own IP Addresses (BYOIP)</a> in the <i>Amazon Elastic Compute Cloud User
2712          * Guide</i>.</p> <p>[EC2-VPC] If you release an Elastic IP address, you might be
2713          * able to recover it. You cannot recover an Elastic IP address that you released
2714          * after it is allocated to another Amazon Web Services account. You cannot recover
2715          * an Elastic IP address for EC2-Classic. To attempt to recover an Elastic IP
2716          * address that you released, specify it in this operation.</p> <p>An Elastic IP
2717          * address is for use either in the EC2-Classic platform or in a VPC. By default,
2718          * you can allocate 5 Elastic IP addresses for EC2-Classic per Region and 5 Elastic
2719          * IP addresses for EC2-VPC per Region.</p> <p>For more information, see <a
2720          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html">Elastic
2721          * IP Addresses</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>
2722          * <p>You can allocate a carrier IP address which is a public IP address from a
2723          * telecommunication carrier, to a network interface which resides in a subnet in a
2724          * Wavelength Zone (for example an EC2 instance). </p><p><h3>See Also:</h3>   <a
2725          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AllocateAddress">AWS
2726          * API Reference</a></p>
2727          *
2728          * returns a future to the operation so that it can be executed in parallel to other requests.
2729          */
2730         virtual Model::AllocateAddressOutcomeCallable AllocateAddressCallable(const Model::AllocateAddressRequest& request) const;
2731 
2732         /**
2733          * <p>Allocates an Elastic IP address to your Amazon Web Services account. After
2734          * you allocate the Elastic IP address you can associate it with an instance or
2735          * network interface. After you release an Elastic IP address, it is released to
2736          * the IP address pool and can be allocated to a different Amazon Web Services
2737          * account.</p> <p>You can allocate an Elastic IP address from an address pool
2738          * owned by Amazon Web Services or from an address pool created from a public IPv4
2739          * address range that you have brought to Amazon Web Services for use with your
2740          * Amazon Web Services resources using bring your own IP addresses (BYOIP). For
2741          * more information, see <a
2742          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-byoip.html">Bring
2743          * Your Own IP Addresses (BYOIP)</a> in the <i>Amazon Elastic Compute Cloud User
2744          * Guide</i>.</p> <p>[EC2-VPC] If you release an Elastic IP address, you might be
2745          * able to recover it. You cannot recover an Elastic IP address that you released
2746          * after it is allocated to another Amazon Web Services account. You cannot recover
2747          * an Elastic IP address for EC2-Classic. To attempt to recover an Elastic IP
2748          * address that you released, specify it in this operation.</p> <p>An Elastic IP
2749          * address is for use either in the EC2-Classic platform or in a VPC. By default,
2750          * you can allocate 5 Elastic IP addresses for EC2-Classic per Region and 5 Elastic
2751          * IP addresses for EC2-VPC per Region.</p> <p>For more information, see <a
2752          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html">Elastic
2753          * IP Addresses</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>
2754          * <p>You can allocate a carrier IP address which is a public IP address from a
2755          * telecommunication carrier, to a network interface which resides in a subnet in a
2756          * Wavelength Zone (for example an EC2 instance). </p><p><h3>See Also:</h3>   <a
2757          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AllocateAddress">AWS
2758          * API Reference</a></p>
2759          *
2760          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2761          */
2762         virtual void AllocateAddressAsync(const Model::AllocateAddressRequest& request, const AllocateAddressResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2763 
2764         /**
2765          * <p>Allocates a Dedicated Host to your account. At a minimum, specify the
2766          * supported instance type or instance family, the Availability Zone in which to
2767          * allocate the host, and the number of hosts to allocate.</p><p><h3>See Also:</h3>
2768          * <a
2769          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AllocateHosts">AWS
2770          * API Reference</a></p>
2771          */
2772         virtual Model::AllocateHostsOutcome AllocateHosts(const Model::AllocateHostsRequest& request) const;
2773 
2774         /**
2775          * <p>Allocates a Dedicated Host to your account. At a minimum, specify the
2776          * supported instance type or instance family, the Availability Zone in which to
2777          * allocate the host, and the number of hosts to allocate.</p><p><h3>See Also:</h3>
2778          * <a
2779          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AllocateHosts">AWS
2780          * API Reference</a></p>
2781          *
2782          * returns a future to the operation so that it can be executed in parallel to other requests.
2783          */
2784         virtual Model::AllocateHostsOutcomeCallable AllocateHostsCallable(const Model::AllocateHostsRequest& request) const;
2785 
2786         /**
2787          * <p>Allocates a Dedicated Host to your account. At a minimum, specify the
2788          * supported instance type or instance family, the Availability Zone in which to
2789          * allocate the host, and the number of hosts to allocate.</p><p><h3>See Also:</h3>
2790          * <a
2791          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AllocateHosts">AWS
2792          * API Reference</a></p>
2793          *
2794          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2795          */
2796         virtual void AllocateHostsAsync(const Model::AllocateHostsRequest& request, const AllocateHostsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2797 
2798         /**
2799          * <p>Applies a security group to the association between the target network and
2800          * the Client VPN endpoint. This action replaces the existing security groups with
2801          * the specified security groups.</p><p><h3>See Also:</h3>   <a
2802          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ApplySecurityGroupsToClientVpnTargetNetwork">AWS
2803          * API Reference</a></p>
2804          */
2805         virtual Model::ApplySecurityGroupsToClientVpnTargetNetworkOutcome ApplySecurityGroupsToClientVpnTargetNetwork(const Model::ApplySecurityGroupsToClientVpnTargetNetworkRequest& request) const;
2806 
2807         /**
2808          * <p>Applies a security group to the association between the target network and
2809          * the Client VPN endpoint. This action replaces the existing security groups with
2810          * the specified security groups.</p><p><h3>See Also:</h3>   <a
2811          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ApplySecurityGroupsToClientVpnTargetNetwork">AWS
2812          * API Reference</a></p>
2813          *
2814          * returns a future to the operation so that it can be executed in parallel to other requests.
2815          */
2816         virtual Model::ApplySecurityGroupsToClientVpnTargetNetworkOutcomeCallable ApplySecurityGroupsToClientVpnTargetNetworkCallable(const Model::ApplySecurityGroupsToClientVpnTargetNetworkRequest& request) const;
2817 
2818         /**
2819          * <p>Applies a security group to the association between the target network and
2820          * the Client VPN endpoint. This action replaces the existing security groups with
2821          * the specified security groups.</p><p><h3>See Also:</h3>   <a
2822          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ApplySecurityGroupsToClientVpnTargetNetwork">AWS
2823          * API Reference</a></p>
2824          *
2825          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2826          */
2827         virtual void ApplySecurityGroupsToClientVpnTargetNetworkAsync(const Model::ApplySecurityGroupsToClientVpnTargetNetworkRequest& request, const ApplySecurityGroupsToClientVpnTargetNetworkResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2828 
2829         /**
2830          * <p>Assigns one or more IPv6 addresses to the specified network interface. You
2831          * can specify one or more specific IPv6 addresses, or you can specify the number
2832          * of IPv6 addresses to be automatically assigned from within the subnet's IPv6
2833          * CIDR block range. You can assign as many IPv6 addresses to a network interface
2834          * as you can assign private IPv4 addresses, and the limit varies per instance
2835          * type. For information, see <a
2836          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html#AvailableIpPerENI">IP
2837          * Addresses Per Network Interface Per Instance Type</a> in the <i>Amazon Elastic
2838          * Compute Cloud User Guide</i>.</p> <p>You must specify either the IPv6 addresses
2839          * or the IPv6 address count in the request. </p> <p>You can optionally use Prefix
2840          * Delegation on the network interface. You must specify either the IPV6 Prefix
2841          * Delegation prefixes, or the IPv6 Prefix Delegation count. For information, see
2842          * <a
2843          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-prefix-eni.html">
2844          * Assigning prefixes to Amazon EC2 network interfaces</a> in the <i>Amazon Elastic
2845          * Compute Cloud User Guide</i>.</p><p><h3>See Also:</h3>   <a
2846          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AssignIpv6Addresses">AWS
2847          * API Reference</a></p>
2848          */
2849         virtual Model::AssignIpv6AddressesOutcome AssignIpv6Addresses(const Model::AssignIpv6AddressesRequest& request) const;
2850 
2851         /**
2852          * <p>Assigns one or more IPv6 addresses to the specified network interface. You
2853          * can specify one or more specific IPv6 addresses, or you can specify the number
2854          * of IPv6 addresses to be automatically assigned from within the subnet's IPv6
2855          * CIDR block range. You can assign as many IPv6 addresses to a network interface
2856          * as you can assign private IPv4 addresses, and the limit varies per instance
2857          * type. For information, see <a
2858          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html#AvailableIpPerENI">IP
2859          * Addresses Per Network Interface Per Instance Type</a> in the <i>Amazon Elastic
2860          * Compute Cloud User Guide</i>.</p> <p>You must specify either the IPv6 addresses
2861          * or the IPv6 address count in the request. </p> <p>You can optionally use Prefix
2862          * Delegation on the network interface. You must specify either the IPV6 Prefix
2863          * Delegation prefixes, or the IPv6 Prefix Delegation count. For information, see
2864          * <a
2865          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-prefix-eni.html">
2866          * Assigning prefixes to Amazon EC2 network interfaces</a> in the <i>Amazon Elastic
2867          * Compute Cloud User Guide</i>.</p><p><h3>See Also:</h3>   <a
2868          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AssignIpv6Addresses">AWS
2869          * API Reference</a></p>
2870          *
2871          * returns a future to the operation so that it can be executed in parallel to other requests.
2872          */
2873         virtual Model::AssignIpv6AddressesOutcomeCallable AssignIpv6AddressesCallable(const Model::AssignIpv6AddressesRequest& request) const;
2874 
2875         /**
2876          * <p>Assigns one or more IPv6 addresses to the specified network interface. You
2877          * can specify one or more specific IPv6 addresses, or you can specify the number
2878          * of IPv6 addresses to be automatically assigned from within the subnet's IPv6
2879          * CIDR block range. You can assign as many IPv6 addresses to a network interface
2880          * as you can assign private IPv4 addresses, and the limit varies per instance
2881          * type. For information, see <a
2882          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html#AvailableIpPerENI">IP
2883          * Addresses Per Network Interface Per Instance Type</a> in the <i>Amazon Elastic
2884          * Compute Cloud User Guide</i>.</p> <p>You must specify either the IPv6 addresses
2885          * or the IPv6 address count in the request. </p> <p>You can optionally use Prefix
2886          * Delegation on the network interface. You must specify either the IPV6 Prefix
2887          * Delegation prefixes, or the IPv6 Prefix Delegation count. For information, see
2888          * <a
2889          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-prefix-eni.html">
2890          * Assigning prefixes to Amazon EC2 network interfaces</a> in the <i>Amazon Elastic
2891          * Compute Cloud User Guide</i>.</p><p><h3>See Also:</h3>   <a
2892          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AssignIpv6Addresses">AWS
2893          * API Reference</a></p>
2894          *
2895          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2896          */
2897         virtual void AssignIpv6AddressesAsync(const Model::AssignIpv6AddressesRequest& request, const AssignIpv6AddressesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2898 
2899         /**
2900          * <p>Assigns one or more secondary private IP addresses to the specified network
2901          * interface.</p> <p>You can specify one or more specific secondary IP addresses,
2902          * or you can specify the number of secondary IP addresses to be automatically
2903          * assigned within the subnet's CIDR block range. The number of secondary IP
2904          * addresses that you can assign to an instance varies by instance type. For
2905          * information about instance types, see <a
2906          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html">Instance
2907          * Types</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>. For more
2908          * information about Elastic IP addresses, see <a
2909          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html">Elastic
2910          * IP Addresses</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>
2911          * <p>When you move a secondary private IP address to another network interface,
2912          * any Elastic IP address that is associated with the IP address is also moved.</p>
2913          * <p>Remapping an IP address is an asynchronous operation. When you move an IP
2914          * address from one network interface to another, check
2915          * <code>network/interfaces/macs/mac/local-ipv4s</code> in the instance metadata to
2916          * confirm that the remapping is complete.</p> <p>You must specify either the IP
2917          * addresses or the IP address count in the request.</p> <p>You can optionally use
2918          * Prefix Delegation on the network interface. You must specify either the IPv4
2919          * Prefix Delegation prefixes, or the IPv4 Prefix Delegation count. For
2920          * information, see <a
2921          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-prefix-eni.html">
2922          * Assigning prefixes to Amazon EC2 network interfaces</a> in the <i>Amazon Elastic
2923          * Compute Cloud User Guide</i>.</p><p><h3>See Also:</h3>   <a
2924          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AssignPrivateIpAddresses">AWS
2925          * API Reference</a></p>
2926          */
2927         virtual Model::AssignPrivateIpAddressesOutcome AssignPrivateIpAddresses(const Model::AssignPrivateIpAddressesRequest& request) const;
2928 
2929         /**
2930          * <p>Assigns one or more secondary private IP addresses to the specified network
2931          * interface.</p> <p>You can specify one or more specific secondary IP addresses,
2932          * or you can specify the number of secondary IP addresses to be automatically
2933          * assigned within the subnet's CIDR block range. The number of secondary IP
2934          * addresses that you can assign to an instance varies by instance type. For
2935          * information about instance types, see <a
2936          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html">Instance
2937          * Types</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>. For more
2938          * information about Elastic IP addresses, see <a
2939          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html">Elastic
2940          * IP Addresses</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>
2941          * <p>When you move a secondary private IP address to another network interface,
2942          * any Elastic IP address that is associated with the IP address is also moved.</p>
2943          * <p>Remapping an IP address is an asynchronous operation. When you move an IP
2944          * address from one network interface to another, check
2945          * <code>network/interfaces/macs/mac/local-ipv4s</code> in the instance metadata to
2946          * confirm that the remapping is complete.</p> <p>You must specify either the IP
2947          * addresses or the IP address count in the request.</p> <p>You can optionally use
2948          * Prefix Delegation on the network interface. You must specify either the IPv4
2949          * Prefix Delegation prefixes, or the IPv4 Prefix Delegation count. For
2950          * information, see <a
2951          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-prefix-eni.html">
2952          * Assigning prefixes to Amazon EC2 network interfaces</a> in the <i>Amazon Elastic
2953          * Compute Cloud User Guide</i>.</p><p><h3>See Also:</h3>   <a
2954          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AssignPrivateIpAddresses">AWS
2955          * API Reference</a></p>
2956          *
2957          * returns a future to the operation so that it can be executed in parallel to other requests.
2958          */
2959         virtual Model::AssignPrivateIpAddressesOutcomeCallable AssignPrivateIpAddressesCallable(const Model::AssignPrivateIpAddressesRequest& request) const;
2960 
2961         /**
2962          * <p>Assigns one or more secondary private IP addresses to the specified network
2963          * interface.</p> <p>You can specify one or more specific secondary IP addresses,
2964          * or you can specify the number of secondary IP addresses to be automatically
2965          * assigned within the subnet's CIDR block range. The number of secondary IP
2966          * addresses that you can assign to an instance varies by instance type. For
2967          * information about instance types, see <a
2968          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html">Instance
2969          * Types</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>. For more
2970          * information about Elastic IP addresses, see <a
2971          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html">Elastic
2972          * IP Addresses</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>
2973          * <p>When you move a secondary private IP address to another network interface,
2974          * any Elastic IP address that is associated with the IP address is also moved.</p>
2975          * <p>Remapping an IP address is an asynchronous operation. When you move an IP
2976          * address from one network interface to another, check
2977          * <code>network/interfaces/macs/mac/local-ipv4s</code> in the instance metadata to
2978          * confirm that the remapping is complete.</p> <p>You must specify either the IP
2979          * addresses or the IP address count in the request.</p> <p>You can optionally use
2980          * Prefix Delegation on the network interface. You must specify either the IPv4
2981          * Prefix Delegation prefixes, or the IPv4 Prefix Delegation count. For
2982          * information, see <a
2983          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-prefix-eni.html">
2984          * Assigning prefixes to Amazon EC2 network interfaces</a> in the <i>Amazon Elastic
2985          * Compute Cloud User Guide</i>.</p><p><h3>See Also:</h3>   <a
2986          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AssignPrivateIpAddresses">AWS
2987          * API Reference</a></p>
2988          *
2989          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2990          */
2991         virtual void AssignPrivateIpAddressesAsync(const Model::AssignPrivateIpAddressesRequest& request, const AssignPrivateIpAddressesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2992 
2993         /**
2994          * <p>Associates an Elastic IP address, or carrier IP address (for instances that
2995          * are in subnets in Wavelength Zones) with an instance or a network interface.
2996          * Before you can use an Elastic IP address, you must allocate it to your
2997          * account.</p> <p>An Elastic IP address is for use in either the EC2-Classic
2998          * platform or in a VPC. For more information, see <a
2999          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html">Elastic
3000          * IP Addresses</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>
3001          * <p>[EC2-Classic, VPC in an EC2-VPC-only account] If the Elastic IP address is
3002          * already associated with a different instance, it is disassociated from that
3003          * instance and associated with the specified instance. If you associate an Elastic
3004          * IP address with an instance that has an existing Elastic IP address, the
3005          * existing address is disassociated from the instance, but remains allocated to
3006          * your account.</p> <p>[VPC in an EC2-Classic account] If you don't specify a
3007          * private IP address, the Elastic IP address is associated with the primary IP
3008          * address. If the Elastic IP address is already associated with a different
3009          * instance or a network interface, you get an error unless you allow
3010          * reassociation. You cannot associate an Elastic IP address with an instance or
3011          * network interface that has an existing Elastic IP address.</p> <p>[Subnets in
3012          * Wavelength Zones] You can associate an IP address from the telecommunication
3013          * carrier to the instance or network interface. </p> <p>You cannot associate an
3014          * Elastic IP address with an interface in a different network border group.</p>
3015          *  <p>This is an idempotent operation. If you perform the operation
3016          * more than once, Amazon EC2 doesn't return an error, and you may be charged for
3017          * each time the Elastic IP address is remapped to the same instance. For more
3018          * information, see the <i>Elastic IP Addresses</i> section of <a
3019          * href="http://aws.amazon.com/ec2/pricing/">Amazon EC2 Pricing</a>.</p>
3020          * <p><h3>See Also:</h3>   <a
3021          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AssociateAddress">AWS
3022          * API Reference</a></p>
3023          */
3024         virtual Model::AssociateAddressOutcome AssociateAddress(const Model::AssociateAddressRequest& request) const;
3025 
3026         /**
3027          * <p>Associates an Elastic IP address, or carrier IP address (for instances that
3028          * are in subnets in Wavelength Zones) with an instance or a network interface.
3029          * Before you can use an Elastic IP address, you must allocate it to your
3030          * account.</p> <p>An Elastic IP address is for use in either the EC2-Classic
3031          * platform or in a VPC. For more information, see <a
3032          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html">Elastic
3033          * IP Addresses</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>
3034          * <p>[EC2-Classic, VPC in an EC2-VPC-only account] If the Elastic IP address is
3035          * already associated with a different instance, it is disassociated from that
3036          * instance and associated with the specified instance. If you associate an Elastic
3037          * IP address with an instance that has an existing Elastic IP address, the
3038          * existing address is disassociated from the instance, but remains allocated to
3039          * your account.</p> <p>[VPC in an EC2-Classic account] If you don't specify a
3040          * private IP address, the Elastic IP address is associated with the primary IP
3041          * address. If the Elastic IP address is already associated with a different
3042          * instance or a network interface, you get an error unless you allow
3043          * reassociation. You cannot associate an Elastic IP address with an instance or
3044          * network interface that has an existing Elastic IP address.</p> <p>[Subnets in
3045          * Wavelength Zones] You can associate an IP address from the telecommunication
3046          * carrier to the instance or network interface. </p> <p>You cannot associate an
3047          * Elastic IP address with an interface in a different network border group.</p>
3048          *  <p>This is an idempotent operation. If you perform the operation
3049          * more than once, Amazon EC2 doesn't return an error, and you may be charged for
3050          * each time the Elastic IP address is remapped to the same instance. For more
3051          * information, see the <i>Elastic IP Addresses</i> section of <a
3052          * href="http://aws.amazon.com/ec2/pricing/">Amazon EC2 Pricing</a>.</p>
3053          * <p><h3>See Also:</h3>   <a
3054          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AssociateAddress">AWS
3055          * API Reference</a></p>
3056          *
3057          * returns a future to the operation so that it can be executed in parallel to other requests.
3058          */
3059         virtual Model::AssociateAddressOutcomeCallable AssociateAddressCallable(const Model::AssociateAddressRequest& request) const;
3060 
3061         /**
3062          * <p>Associates an Elastic IP address, or carrier IP address (for instances that
3063          * are in subnets in Wavelength Zones) with an instance or a network interface.
3064          * Before you can use an Elastic IP address, you must allocate it to your
3065          * account.</p> <p>An Elastic IP address is for use in either the EC2-Classic
3066          * platform or in a VPC. For more information, see <a
3067          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html">Elastic
3068          * IP Addresses</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>
3069          * <p>[EC2-Classic, VPC in an EC2-VPC-only account] If the Elastic IP address is
3070          * already associated with a different instance, it is disassociated from that
3071          * instance and associated with the specified instance. If you associate an Elastic
3072          * IP address with an instance that has an existing Elastic IP address, the
3073          * existing address is disassociated from the instance, but remains allocated to
3074          * your account.</p> <p>[VPC in an EC2-Classic account] If you don't specify a
3075          * private IP address, the Elastic IP address is associated with the primary IP
3076          * address. If the Elastic IP address is already associated with a different
3077          * instance or a network interface, you get an error unless you allow
3078          * reassociation. You cannot associate an Elastic IP address with an instance or
3079          * network interface that has an existing Elastic IP address.</p> <p>[Subnets in
3080          * Wavelength Zones] You can associate an IP address from the telecommunication
3081          * carrier to the instance or network interface. </p> <p>You cannot associate an
3082          * Elastic IP address with an interface in a different network border group.</p>
3083          *  <p>This is an idempotent operation. If you perform the operation
3084          * more than once, Amazon EC2 doesn't return an error, and you may be charged for
3085          * each time the Elastic IP address is remapped to the same instance. For more
3086          * information, see the <i>Elastic IP Addresses</i> section of <a
3087          * href="http://aws.amazon.com/ec2/pricing/">Amazon EC2 Pricing</a>.</p>
3088          * <p><h3>See Also:</h3>   <a
3089          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AssociateAddress">AWS
3090          * API Reference</a></p>
3091          *
3092          * Queues the request into a thread executor and triggers associated callback when operation has finished.
3093          */
3094         virtual void AssociateAddressAsync(const Model::AssociateAddressRequest& request, const AssociateAddressResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
3095 
3096         /**
3097          * <p>Associates a target network with a Client VPN endpoint. A target network is a
3098          * subnet in a VPC. You can associate multiple subnets from the same VPC with a
3099          * Client VPN endpoint. You can associate only one subnet in each Availability
3100          * Zone. We recommend that you associate at least two subnets to provide
3101          * Availability Zone redundancy.</p> <p>If you specified a VPC when you created the
3102          * Client VPN endpoint or if you have previous subnet associations, the specified
3103          * subnet must be in the same VPC. To specify a subnet that's in a different VPC,
3104          * you must first modify the Client VPN endpoint (<a>ModifyClientVpnEndpoint</a>)
3105          * and change the VPC that's associated with it.</p><p><h3>See Also:</h3>   <a
3106          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AssociateClientVpnTargetNetwork">AWS
3107          * API Reference</a></p>
3108          */
3109         virtual Model::AssociateClientVpnTargetNetworkOutcome AssociateClientVpnTargetNetwork(const Model::AssociateClientVpnTargetNetworkRequest& request) const;
3110 
3111         /**
3112          * <p>Associates a target network with a Client VPN endpoint. A target network is a
3113          * subnet in a VPC. You can associate multiple subnets from the same VPC with a
3114          * Client VPN endpoint. You can associate only one subnet in each Availability
3115          * Zone. We recommend that you associate at least two subnets to provide
3116          * Availability Zone redundancy.</p> <p>If you specified a VPC when you created the
3117          * Client VPN endpoint or if you have previous subnet associations, the specified
3118          * subnet must be in the same VPC. To specify a subnet that's in a different VPC,
3119          * you must first modify the Client VPN endpoint (<a>ModifyClientVpnEndpoint</a>)
3120          * and change the VPC that's associated with it.</p><p><h3>See Also:</h3>   <a
3121          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AssociateClientVpnTargetNetwork">AWS
3122          * API Reference</a></p>
3123          *
3124          * returns a future to the operation so that it can be executed in parallel to other requests.
3125          */
3126         virtual Model::AssociateClientVpnTargetNetworkOutcomeCallable AssociateClientVpnTargetNetworkCallable(const Model::AssociateClientVpnTargetNetworkRequest& request) const;
3127 
3128         /**
3129          * <p>Associates a target network with a Client VPN endpoint. A target network is a
3130          * subnet in a VPC. You can associate multiple subnets from the same VPC with a
3131          * Client VPN endpoint. You can associate only one subnet in each Availability
3132          * Zone. We recommend that you associate at least two subnets to provide
3133          * Availability Zone redundancy.</p> <p>If you specified a VPC when you created the
3134          * Client VPN endpoint or if you have previous subnet associations, the specified
3135          * subnet must be in the same VPC. To specify a subnet that's in a different VPC,
3136          * you must first modify the Client VPN endpoint (<a>ModifyClientVpnEndpoint</a>)
3137          * and change the VPC that's associated with it.</p><p><h3>See Also:</h3>   <a
3138          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AssociateClientVpnTargetNetwork">AWS
3139          * API Reference</a></p>
3140          *
3141          * Queues the request into a thread executor and triggers associated callback when operation has finished.
3142          */
3143         virtual void AssociateClientVpnTargetNetworkAsync(const Model::AssociateClientVpnTargetNetworkRequest& request, const AssociateClientVpnTargetNetworkResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
3144 
3145         /**
3146          * <p>Associates a set of DHCP options (that you've previously created) with the
3147          * specified VPC, or associates no DHCP options with the VPC.</p> <p>After you
3148          * associate the options with the VPC, any existing instances and all new instances
3149          * that you launch in that VPC use the options. You don't need to restart or
3150          * relaunch the instances. They automatically pick up the changes within a few
3151          * hours, depending on how frequently the instance renews its DHCP lease. You can
3152          * explicitly renew the lease using the operating system on the instance.</p>
3153          * <p>For more information, see <a
3154          * href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_DHCP_Options.html">DHCP
3155          * options sets</a> in the <i>Amazon Virtual Private Cloud User
3156          * Guide</i>.</p><p><h3>See Also:</h3>   <a
3157          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AssociateDhcpOptions">AWS
3158          * API Reference</a></p>
3159          */
3160         virtual Model::AssociateDhcpOptionsOutcome AssociateDhcpOptions(const Model::AssociateDhcpOptionsRequest& request) const;
3161 
3162         /**
3163          * <p>Associates a set of DHCP options (that you've previously created) with the
3164          * specified VPC, or associates no DHCP options with the VPC.</p> <p>After you
3165          * associate the options with the VPC, any existing instances and all new instances
3166          * that you launch in that VPC use the options. You don't need to restart or
3167          * relaunch the instances. They automatically pick up the changes within a few
3168          * hours, depending on how frequently the instance renews its DHCP lease. You can
3169          * explicitly renew the lease using the operating system on the instance.</p>
3170          * <p>For more information, see <a
3171          * href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_DHCP_Options.html">DHCP
3172          * options sets</a> in the <i>Amazon Virtual Private Cloud User
3173          * Guide</i>.</p><p><h3>See Also:</h3>   <a
3174          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AssociateDhcpOptions">AWS
3175          * API Reference</a></p>
3176          *
3177          * returns a future to the operation so that it can be executed in parallel to other requests.
3178          */
3179         virtual Model::AssociateDhcpOptionsOutcomeCallable AssociateDhcpOptionsCallable(const Model::AssociateDhcpOptionsRequest& request) const;
3180 
3181         /**
3182          * <p>Associates a set of DHCP options (that you've previously created) with the
3183          * specified VPC, or associates no DHCP options with the VPC.</p> <p>After you
3184          * associate the options with the VPC, any existing instances and all new instances
3185          * that you launch in that VPC use the options. You don't need to restart or
3186          * relaunch the instances. They automatically pick up the changes within a few
3187          * hours, depending on how frequently the instance renews its DHCP lease. You can
3188          * explicitly renew the lease using the operating system on the instance.</p>
3189          * <p>For more information, see <a
3190          * href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_DHCP_Options.html">DHCP
3191          * options sets</a> in the <i>Amazon Virtual Private Cloud User
3192          * Guide</i>.</p><p><h3>See Also:</h3>   <a
3193          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AssociateDhcpOptions">AWS
3194          * API Reference</a></p>
3195          *
3196          * Queues the request into a thread executor and triggers associated callback when operation has finished.
3197          */
3198         virtual void AssociateDhcpOptionsAsync(const Model::AssociateDhcpOptionsRequest& request, const AssociateDhcpOptionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
3199 
3200         /**
3201          * <p>Associates an Identity and Access Management (IAM) role with an Certificate
3202          * Manager (ACM) certificate. This enables the certificate to be used by the ACM
3203          * for Nitro Enclaves application inside an enclave. For more information, see <a
3204          * href="https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave-refapp.html">Certificate
3205          * Manager for Nitro Enclaves</a> in the <i>Amazon Web Services Nitro Enclaves User
3206          * Guide</i>.</p> <p>When the IAM role is associated with the ACM certificate, the
3207          * certificate, certificate chain, and encrypted private key are placed in an
3208          * Amazon S3 bucket that only the associated IAM role can access. The private key
3209          * of the certificate is encrypted with an Amazon Web Services managed key that has
3210          * an attached attestation-based key policy.</p> <p>To enable the IAM role to
3211          * access the Amazon S3 object, you must grant it permission to call
3212          * <code>s3:GetObject</code> on the Amazon S3 bucket returned by the command. To
3213          * enable the IAM role to access the KMS key, you must grant it permission to call
3214          * <code>kms:Decrypt</code> on the KMS key returned by the command. For more
3215          * information, see <a
3216          * href="https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave-refapp.html#add-policy">
3217          * Grant the role permission to access the certificate and encryption key</a> in
3218          * the <i>Amazon Web Services Nitro Enclaves User Guide</i>.</p><p><h3>See
3219          * Also:</h3>   <a
3220          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AssociateEnclaveCertificateIamRole">AWS
3221          * API Reference</a></p>
3222          */
3223         virtual Model::AssociateEnclaveCertificateIamRoleOutcome AssociateEnclaveCertificateIamRole(const Model::AssociateEnclaveCertificateIamRoleRequest& request) const;
3224 
3225         /**
3226          * <p>Associates an Identity and Access Management (IAM) role with an Certificate
3227          * Manager (ACM) certificate. This enables the certificate to be used by the ACM
3228          * for Nitro Enclaves application inside an enclave. For more information, see <a
3229          * href="https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave-refapp.html">Certificate
3230          * Manager for Nitro Enclaves</a> in the <i>Amazon Web Services Nitro Enclaves User
3231          * Guide</i>.</p> <p>When the IAM role is associated with the ACM certificate, the
3232          * certificate, certificate chain, and encrypted private key are placed in an
3233          * Amazon S3 bucket that only the associated IAM role can access. The private key
3234          * of the certificate is encrypted with an Amazon Web Services managed key that has
3235          * an attached attestation-based key policy.</p> <p>To enable the IAM role to
3236          * access the Amazon S3 object, you must grant it permission to call
3237          * <code>s3:GetObject</code> on the Amazon S3 bucket returned by the command. To
3238          * enable the IAM role to access the KMS key, you must grant it permission to call
3239          * <code>kms:Decrypt</code> on the KMS key returned by the command. For more
3240          * information, see <a
3241          * href="https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave-refapp.html#add-policy">
3242          * Grant the role permission to access the certificate and encryption key</a> in
3243          * the <i>Amazon Web Services Nitro Enclaves User Guide</i>.</p><p><h3>See
3244          * Also:</h3>   <a
3245          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AssociateEnclaveCertificateIamRole">AWS
3246          * API Reference</a></p>
3247          *
3248          * returns a future to the operation so that it can be executed in parallel to other requests.
3249          */
3250         virtual Model::AssociateEnclaveCertificateIamRoleOutcomeCallable AssociateEnclaveCertificateIamRoleCallable(const Model::AssociateEnclaveCertificateIamRoleRequest& request) const;
3251 
3252         /**
3253          * <p>Associates an Identity and Access Management (IAM) role with an Certificate
3254          * Manager (ACM) certificate. This enables the certificate to be used by the ACM
3255          * for Nitro Enclaves application inside an enclave. For more information, see <a
3256          * href="https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave-refapp.html">Certificate
3257          * Manager for Nitro Enclaves</a> in the <i>Amazon Web Services Nitro Enclaves User
3258          * Guide</i>.</p> <p>When the IAM role is associated with the ACM certificate, the
3259          * certificate, certificate chain, and encrypted private key are placed in an
3260          * Amazon S3 bucket that only the associated IAM role can access. The private key
3261          * of the certificate is encrypted with an Amazon Web Services managed key that has
3262          * an attached attestation-based key policy.</p> <p>To enable the IAM role to
3263          * access the Amazon S3 object, you must grant it permission to call
3264          * <code>s3:GetObject</code> on the Amazon S3 bucket returned by the command. To
3265          * enable the IAM role to access the KMS key, you must grant it permission to call
3266          * <code>kms:Decrypt</code> on the KMS key returned by the command. For more
3267          * information, see <a
3268          * href="https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave-refapp.html#add-policy">
3269          * Grant the role permission to access the certificate and encryption key</a> in
3270          * the <i>Amazon Web Services Nitro Enclaves User Guide</i>.</p><p><h3>See
3271          * Also:</h3>   <a
3272          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AssociateEnclaveCertificateIamRole">AWS
3273          * API Reference</a></p>
3274          *
3275          * Queues the request into a thread executor and triggers associated callback when operation has finished.
3276          */
3277         virtual void AssociateEnclaveCertificateIamRoleAsync(const Model::AssociateEnclaveCertificateIamRoleRequest& request, const AssociateEnclaveCertificateIamRoleResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
3278 
3279         /**
3280          * <p>Associates an IAM instance profile with a running or stopped instance. You
3281          * cannot associate more than one IAM instance profile with an
3282          * instance.</p><p><h3>See Also:</h3>   <a
3283          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AssociateIamInstanceProfile">AWS
3284          * API Reference</a></p>
3285          */
3286         virtual Model::AssociateIamInstanceProfileOutcome AssociateIamInstanceProfile(const Model::AssociateIamInstanceProfileRequest& request) const;
3287 
3288         /**
3289          * <p>Associates an IAM instance profile with a running or stopped instance. You
3290          * cannot associate more than one IAM instance profile with an
3291          * instance.</p><p><h3>See Also:</h3>   <a
3292          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AssociateIamInstanceProfile">AWS
3293          * API Reference</a></p>
3294          *
3295          * returns a future to the operation so that it can be executed in parallel to other requests.
3296          */
3297         virtual Model::AssociateIamInstanceProfileOutcomeCallable AssociateIamInstanceProfileCallable(const Model::AssociateIamInstanceProfileRequest& request) const;
3298 
3299         /**
3300          * <p>Associates an IAM instance profile with a running or stopped instance. You
3301          * cannot associate more than one IAM instance profile with an
3302          * instance.</p><p><h3>See Also:</h3>   <a
3303          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AssociateIamInstanceProfile">AWS
3304          * API Reference</a></p>
3305          *
3306          * Queues the request into a thread executor and triggers associated callback when operation has finished.
3307          */
3308         virtual void AssociateIamInstanceProfileAsync(const Model::AssociateIamInstanceProfileRequest& request, const AssociateIamInstanceProfileResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
3309 
3310         /**
3311          * <p>Associates one or more targets with an event window. Only one type of target
3312          * (instance IDs, Dedicated Host IDs, or tags) can be specified with an event
3313          * window.</p> <p>For more information, see <a
3314          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/event-windows.html">Define
3315          * event windows for scheduled events</a> in the <i>Amazon EC2 User
3316          * Guide</i>.</p><p><h3>See Also:</h3>   <a
3317          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AssociateInstanceEventWindow">AWS
3318          * API Reference</a></p>
3319          */
3320         virtual Model::AssociateInstanceEventWindowOutcome AssociateInstanceEventWindow(const Model::AssociateInstanceEventWindowRequest& request) const;
3321 
3322         /**
3323          * <p>Associates one or more targets with an event window. Only one type of target
3324          * (instance IDs, Dedicated Host IDs, or tags) can be specified with an event
3325          * window.</p> <p>For more information, see <a
3326          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/event-windows.html">Define
3327          * event windows for scheduled events</a> in the <i>Amazon EC2 User
3328          * Guide</i>.</p><p><h3>See Also:</h3>   <a
3329          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AssociateInstanceEventWindow">AWS
3330          * API Reference</a></p>
3331          *
3332          * returns a future to the operation so that it can be executed in parallel to other requests.
3333          */
3334         virtual Model::AssociateInstanceEventWindowOutcomeCallable AssociateInstanceEventWindowCallable(const Model::AssociateInstanceEventWindowRequest& request) const;
3335 
3336         /**
3337          * <p>Associates one or more targets with an event window. Only one type of target
3338          * (instance IDs, Dedicated Host IDs, or tags) can be specified with an event
3339          * window.</p> <p>For more information, see <a
3340          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/event-windows.html">Define
3341          * event windows for scheduled events</a> in the <i>Amazon EC2 User
3342          * Guide</i>.</p><p><h3>See Also:</h3>   <a
3343          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AssociateInstanceEventWindow">AWS
3344          * API Reference</a></p>
3345          *
3346          * Queues the request into a thread executor and triggers associated callback when operation has finished.
3347          */
3348         virtual void AssociateInstanceEventWindowAsync(const Model::AssociateInstanceEventWindowRequest& request, const AssociateInstanceEventWindowResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
3349 
3350         /**
3351          * <p>Associates a subnet in your VPC or an internet gateway or virtual private
3352          * gateway attached to your VPC with a route table in your VPC. This association
3353          * causes traffic from the subnet or gateway to be routed according to the routes
3354          * in the route table. The action returns an association ID, which you need in
3355          * order to disassociate the route table later. A route table can be associated
3356          * with multiple subnets.</p> <p>For more information, see <a
3357          * href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html">Route
3358          * tables</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.</p><p><h3>See
3359          * Also:</h3>   <a
3360          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AssociateRouteTable">AWS
3361          * API Reference</a></p>
3362          */
3363         virtual Model::AssociateRouteTableOutcome AssociateRouteTable(const Model::AssociateRouteTableRequest& request) const;
3364 
3365         /**
3366          * <p>Associates a subnet in your VPC or an internet gateway or virtual private
3367          * gateway attached to your VPC with a route table in your VPC. This association
3368          * causes traffic from the subnet or gateway to be routed according to the routes
3369          * in the route table. The action returns an association ID, which you need in
3370          * order to disassociate the route table later. A route table can be associated
3371          * with multiple subnets.</p> <p>For more information, see <a
3372          * href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html">Route
3373          * tables</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.</p><p><h3>See
3374          * Also:</h3>   <a
3375          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AssociateRouteTable">AWS
3376          * API Reference</a></p>
3377          *
3378          * returns a future to the operation so that it can be executed in parallel to other requests.
3379          */
3380         virtual Model::AssociateRouteTableOutcomeCallable AssociateRouteTableCallable(const Model::AssociateRouteTableRequest& request) const;
3381 
3382         /**
3383          * <p>Associates a subnet in your VPC or an internet gateway or virtual private
3384          * gateway attached to your VPC with a route table in your VPC. This association
3385          * causes traffic from the subnet or gateway to be routed according to the routes
3386          * in the route table. The action returns an association ID, which you need in
3387          * order to disassociate the route table later. A route table can be associated
3388          * with multiple subnets.</p> <p>For more information, see <a
3389          * href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html">Route
3390          * tables</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.</p><p><h3>See
3391          * Also:</h3>   <a
3392          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AssociateRouteTable">AWS
3393          * API Reference</a></p>
3394          *
3395          * Queues the request into a thread executor and triggers associated callback when operation has finished.
3396          */
3397         virtual void AssociateRouteTableAsync(const Model::AssociateRouteTableRequest& request, const AssociateRouteTableResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
3398 
3399         /**
3400          * <p>Associates a CIDR block with your subnet. You can only associate a single
3401          * IPv6 CIDR block with your subnet. An IPv6 CIDR block must have a prefix length
3402          * of /64.</p><p><h3>See Also:</h3>   <a
3403          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AssociateSubnetCidrBlock">AWS
3404          * API Reference</a></p>
3405          */
3406         virtual Model::AssociateSubnetCidrBlockOutcome AssociateSubnetCidrBlock(const Model::AssociateSubnetCidrBlockRequest& request) const;
3407 
3408         /**
3409          * <p>Associates a CIDR block with your subnet. You can only associate a single
3410          * IPv6 CIDR block with your subnet. An IPv6 CIDR block must have a prefix length
3411          * of /64.</p><p><h3>See Also:</h3>   <a
3412          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AssociateSubnetCidrBlock">AWS
3413          * API Reference</a></p>
3414          *
3415          * returns a future to the operation so that it can be executed in parallel to other requests.
3416          */
3417         virtual Model::AssociateSubnetCidrBlockOutcomeCallable AssociateSubnetCidrBlockCallable(const Model::AssociateSubnetCidrBlockRequest& request) const;
3418 
3419         /**
3420          * <p>Associates a CIDR block with your subnet. You can only associate a single
3421          * IPv6 CIDR block with your subnet. An IPv6 CIDR block must have a prefix length
3422          * of /64.</p><p><h3>See Also:</h3>   <a
3423          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AssociateSubnetCidrBlock">AWS
3424          * API Reference</a></p>
3425          *
3426          * Queues the request into a thread executor and triggers associated callback when operation has finished.
3427          */
3428         virtual void AssociateSubnetCidrBlockAsync(const Model::AssociateSubnetCidrBlockRequest& request, const AssociateSubnetCidrBlockResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
3429 
3430         /**
3431          * <p>Associates the specified subnets and transit gateway attachments with the
3432          * specified transit gateway multicast domain.</p> <p>The transit gateway
3433          * attachment must be in the available state before you can add a resource. Use <a
3434          * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeTransitGatewayAttachments.html">DescribeTransitGatewayAttachments</a>
3435          * to see the state of the attachment.</p><p><h3>See Also:</h3>   <a
3436          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AssociateTransitGatewayMulticastDomain">AWS
3437          * API Reference</a></p>
3438          */
3439         virtual Model::AssociateTransitGatewayMulticastDomainOutcome AssociateTransitGatewayMulticastDomain(const Model::AssociateTransitGatewayMulticastDomainRequest& request) const;
3440 
3441         /**
3442          * <p>Associates the specified subnets and transit gateway attachments with the
3443          * specified transit gateway multicast domain.</p> <p>The transit gateway
3444          * attachment must be in the available state before you can add a resource. Use <a
3445          * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeTransitGatewayAttachments.html">DescribeTransitGatewayAttachments</a>
3446          * to see the state of the attachment.</p><p><h3>See Also:</h3>   <a
3447          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AssociateTransitGatewayMulticastDomain">AWS
3448          * API Reference</a></p>
3449          *
3450          * returns a future to the operation so that it can be executed in parallel to other requests.
3451          */
3452         virtual Model::AssociateTransitGatewayMulticastDomainOutcomeCallable AssociateTransitGatewayMulticastDomainCallable(const Model::AssociateTransitGatewayMulticastDomainRequest& request) const;
3453 
3454         /**
3455          * <p>Associates the specified subnets and transit gateway attachments with the
3456          * specified transit gateway multicast domain.</p> <p>The transit gateway
3457          * attachment must be in the available state before you can add a resource. Use <a
3458          * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeTransitGatewayAttachments.html">DescribeTransitGatewayAttachments</a>
3459          * to see the state of the attachment.</p><p><h3>See Also:</h3>   <a
3460          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AssociateTransitGatewayMulticastDomain">AWS
3461          * API Reference</a></p>
3462          *
3463          * Queues the request into a thread executor and triggers associated callback when operation has finished.
3464          */
3465         virtual void AssociateTransitGatewayMulticastDomainAsync(const Model::AssociateTransitGatewayMulticastDomainRequest& request, const AssociateTransitGatewayMulticastDomainResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
3466 
3467         /**
3468          * <p>Associates the specified attachment with the specified transit gateway route
3469          * table. You can associate only one route table with an attachment.</p><p><h3>See
3470          * Also:</h3>   <a
3471          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AssociateTransitGatewayRouteTable">AWS
3472          * API Reference</a></p>
3473          */
3474         virtual Model::AssociateTransitGatewayRouteTableOutcome AssociateTransitGatewayRouteTable(const Model::AssociateTransitGatewayRouteTableRequest& request) const;
3475 
3476         /**
3477          * <p>Associates the specified attachment with the specified transit gateway route
3478          * table. You can associate only one route table with an attachment.</p><p><h3>See
3479          * Also:</h3>   <a
3480          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AssociateTransitGatewayRouteTable">AWS
3481          * API Reference</a></p>
3482          *
3483          * returns a future to the operation so that it can be executed in parallel to other requests.
3484          */
3485         virtual Model::AssociateTransitGatewayRouteTableOutcomeCallable AssociateTransitGatewayRouteTableCallable(const Model::AssociateTransitGatewayRouteTableRequest& request) const;
3486 
3487         /**
3488          * <p>Associates the specified attachment with the specified transit gateway route
3489          * table. You can associate only one route table with an attachment.</p><p><h3>See
3490          * Also:</h3>   <a
3491          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AssociateTransitGatewayRouteTable">AWS
3492          * API Reference</a></p>
3493          *
3494          * Queues the request into a thread executor and triggers associated callback when operation has finished.
3495          */
3496         virtual void AssociateTransitGatewayRouteTableAsync(const Model::AssociateTransitGatewayRouteTableRequest& request, const AssociateTransitGatewayRouteTableResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
3497 
3498         /**
3499          *  <p>This API action is currently in <b>limited preview only</b>. If you
3500          * are interested in using this feature, contact your account manager.</p>
3501          * <p>Associates a branch network interface with a trunk network interface.</p>
3502          * <p>Before you create the association, run the <a
3503          * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateNetworkInterface.html">create-network-interface</a>
3504          * command and set <code>--interface-type</code> to <code>trunk</code>. You must
3505          * also create a network interface for each branch network interface that you want
3506          * to associate with the trunk network interface.</p><p><h3>See Also:</h3>   <a
3507          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AssociateTrunkInterface">AWS
3508          * API Reference</a></p>
3509          */
3510         virtual Model::AssociateTrunkInterfaceOutcome AssociateTrunkInterface(const Model::AssociateTrunkInterfaceRequest& request) const;
3511 
3512         /**
3513          *  <p>This API action is currently in <b>limited preview only</b>. If you
3514          * are interested in using this feature, contact your account manager.</p>
3515          * <p>Associates a branch network interface with a trunk network interface.</p>
3516          * <p>Before you create the association, run the <a
3517          * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateNetworkInterface.html">create-network-interface</a>
3518          * command and set <code>--interface-type</code> to <code>trunk</code>. You must
3519          * also create a network interface for each branch network interface that you want
3520          * to associate with the trunk network interface.</p><p><h3>See Also:</h3>   <a
3521          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AssociateTrunkInterface">AWS
3522          * API Reference</a></p>
3523          *
3524          * returns a future to the operation so that it can be executed in parallel to other requests.
3525          */
3526         virtual Model::AssociateTrunkInterfaceOutcomeCallable AssociateTrunkInterfaceCallable(const Model::AssociateTrunkInterfaceRequest& request) const;
3527 
3528         /**
3529          *  <p>This API action is currently in <b>limited preview only</b>. If you
3530          * are interested in using this feature, contact your account manager.</p>
3531          * <p>Associates a branch network interface with a trunk network interface.</p>
3532          * <p>Before you create the association, run the <a
3533          * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateNetworkInterface.html">create-network-interface</a>
3534          * command and set <code>--interface-type</code> to <code>trunk</code>. You must
3535          * also create a network interface for each branch network interface that you want
3536          * to associate with the trunk network interface.</p><p><h3>See Also:</h3>   <a
3537          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AssociateTrunkInterface">AWS
3538          * API Reference</a></p>
3539          *
3540          * Queues the request into a thread executor and triggers associated callback when operation has finished.
3541          */
3542         virtual void AssociateTrunkInterfaceAsync(const Model::AssociateTrunkInterfaceRequest& request, const AssociateTrunkInterfaceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
3543 
3544         /**
3545          * <p>Associates a CIDR block with your VPC. You can associate a secondary IPv4
3546          * CIDR block, an Amazon-provided IPv6 CIDR block, or an IPv6 CIDR block from an
3547          * IPv6 address pool that you provisioned through bring your own IP addresses (<a
3548          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-byoip.html">BYOIP</a>).
3549          * The IPv6 CIDR block size is fixed at /56.</p> <p>You must specify one of the
3550          * following in the request: an IPv4 CIDR block, an IPv6 pool, or an
3551          * Amazon-provided IPv6 CIDR block.</p> <p>For more information about associating
3552          * CIDR blocks with your VPC and applicable restrictions, see <a
3553          * href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html#VPC_Sizing">VPC
3554          * and subnet sizing</a> in the <i>Amazon Virtual Private Cloud User
3555          * Guide</i>.</p><p><h3>See Also:</h3>   <a
3556          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AssociateVpcCidrBlock">AWS
3557          * API Reference</a></p>
3558          */
3559         virtual Model::AssociateVpcCidrBlockOutcome AssociateVpcCidrBlock(const Model::AssociateVpcCidrBlockRequest& request) const;
3560 
3561         /**
3562          * <p>Associates a CIDR block with your VPC. You can associate a secondary IPv4
3563          * CIDR block, an Amazon-provided IPv6 CIDR block, or an IPv6 CIDR block from an
3564          * IPv6 address pool that you provisioned through bring your own IP addresses (<a
3565          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-byoip.html">BYOIP</a>).
3566          * The IPv6 CIDR block size is fixed at /56.</p> <p>You must specify one of the
3567          * following in the request: an IPv4 CIDR block, an IPv6 pool, or an
3568          * Amazon-provided IPv6 CIDR block.</p> <p>For more information about associating
3569          * CIDR blocks with your VPC and applicable restrictions, see <a
3570          * href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html#VPC_Sizing">VPC
3571          * and subnet sizing</a> in the <i>Amazon Virtual Private Cloud User
3572          * Guide</i>.</p><p><h3>See Also:</h3>   <a
3573          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AssociateVpcCidrBlock">AWS
3574          * API Reference</a></p>
3575          *
3576          * returns a future to the operation so that it can be executed in parallel to other requests.
3577          */
3578         virtual Model::AssociateVpcCidrBlockOutcomeCallable AssociateVpcCidrBlockCallable(const Model::AssociateVpcCidrBlockRequest& request) const;
3579 
3580         /**
3581          * <p>Associates a CIDR block with your VPC. You can associate a secondary IPv4
3582          * CIDR block, an Amazon-provided IPv6 CIDR block, or an IPv6 CIDR block from an
3583          * IPv6 address pool that you provisioned through bring your own IP addresses (<a
3584          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-byoip.html">BYOIP</a>).
3585          * The IPv6 CIDR block size is fixed at /56.</p> <p>You must specify one of the
3586          * following in the request: an IPv4 CIDR block, an IPv6 pool, or an
3587          * Amazon-provided IPv6 CIDR block.</p> <p>For more information about associating
3588          * CIDR blocks with your VPC and applicable restrictions, see <a
3589          * href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html#VPC_Sizing">VPC
3590          * and subnet sizing</a> in the <i>Amazon Virtual Private Cloud User
3591          * Guide</i>.</p><p><h3>See Also:</h3>   <a
3592          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AssociateVpcCidrBlock">AWS
3593          * API Reference</a></p>
3594          *
3595          * Queues the request into a thread executor and triggers associated callback when operation has finished.
3596          */
3597         virtual void AssociateVpcCidrBlockAsync(const Model::AssociateVpcCidrBlockRequest& request, const AssociateVpcCidrBlockResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
3598 
3599         /**
3600          * <p>Links an EC2-Classic instance to a ClassicLink-enabled VPC through one or
3601          * more of the VPC's security groups. You cannot link an EC2-Classic instance to
3602          * more than one VPC at a time. You can only link an instance that's in the
3603          * <code>running</code> state. An instance is automatically unlinked from a VPC
3604          * when it's stopped - you can link it to the VPC again when you restart it.</p>
3605          * <p>After you've linked an instance, you cannot change the VPC security groups
3606          * that are associated with it. To change the security groups, you must first
3607          * unlink the instance, and then link it again.</p> <p>Linking your instance to a
3608          * VPC is sometimes referred to as <i>attaching</i> your instance.</p><p><h3>See
3609          * Also:</h3>   <a
3610          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AttachClassicLinkVpc">AWS
3611          * API Reference</a></p>
3612          */
3613         virtual Model::AttachClassicLinkVpcOutcome AttachClassicLinkVpc(const Model::AttachClassicLinkVpcRequest& request) const;
3614 
3615         /**
3616          * <p>Links an EC2-Classic instance to a ClassicLink-enabled VPC through one or
3617          * more of the VPC's security groups. You cannot link an EC2-Classic instance to
3618          * more than one VPC at a time. You can only link an instance that's in the
3619          * <code>running</code> state. An instance is automatically unlinked from a VPC
3620          * when it's stopped - you can link it to the VPC again when you restart it.</p>
3621          * <p>After you've linked an instance, you cannot change the VPC security groups
3622          * that are associated with it. To change the security groups, you must first
3623          * unlink the instance, and then link it again.</p> <p>Linking your instance to a
3624          * VPC is sometimes referred to as <i>attaching</i> your instance.</p><p><h3>See
3625          * Also:</h3>   <a
3626          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AttachClassicLinkVpc">AWS
3627          * API Reference</a></p>
3628          *
3629          * returns a future to the operation so that it can be executed in parallel to other requests.
3630          */
3631         virtual Model::AttachClassicLinkVpcOutcomeCallable AttachClassicLinkVpcCallable(const Model::AttachClassicLinkVpcRequest& request) const;
3632 
3633         /**
3634          * <p>Links an EC2-Classic instance to a ClassicLink-enabled VPC through one or
3635          * more of the VPC's security groups. You cannot link an EC2-Classic instance to
3636          * more than one VPC at a time. You can only link an instance that's in the
3637          * <code>running</code> state. An instance is automatically unlinked from a VPC
3638          * when it's stopped - you can link it to the VPC again when you restart it.</p>
3639          * <p>After you've linked an instance, you cannot change the VPC security groups
3640          * that are associated with it. To change the security groups, you must first
3641          * unlink the instance, and then link it again.</p> <p>Linking your instance to a
3642          * VPC is sometimes referred to as <i>attaching</i> your instance.</p><p><h3>See
3643          * Also:</h3>   <a
3644          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AttachClassicLinkVpc">AWS
3645          * API Reference</a></p>
3646          *
3647          * Queues the request into a thread executor and triggers associated callback when operation has finished.
3648          */
3649         virtual void AttachClassicLinkVpcAsync(const Model::AttachClassicLinkVpcRequest& request, const AttachClassicLinkVpcResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
3650 
3651         /**
3652          * <p>Attaches an internet gateway or a virtual private gateway to a VPC, enabling
3653          * connectivity between the internet and the VPC. For more information about your
3654          * VPC and internet gateway, see the <a
3655          * href="https://docs.aws.amazon.com/vpc/latest/userguide/">Amazon Virtual Private
3656          * Cloud User Guide</a>.</p><p><h3>See Also:</h3>   <a
3657          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AttachInternetGateway">AWS
3658          * API Reference</a></p>
3659          */
3660         virtual Model::AttachInternetGatewayOutcome AttachInternetGateway(const Model::AttachInternetGatewayRequest& request) const;
3661 
3662         /**
3663          * <p>Attaches an internet gateway or a virtual private gateway to a VPC, enabling
3664          * connectivity between the internet and the VPC. For more information about your
3665          * VPC and internet gateway, see the <a
3666          * href="https://docs.aws.amazon.com/vpc/latest/userguide/">Amazon Virtual Private
3667          * Cloud User Guide</a>.</p><p><h3>See Also:</h3>   <a
3668          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AttachInternetGateway">AWS
3669          * API Reference</a></p>
3670          *
3671          * returns a future to the operation so that it can be executed in parallel to other requests.
3672          */
3673         virtual Model::AttachInternetGatewayOutcomeCallable AttachInternetGatewayCallable(const Model::AttachInternetGatewayRequest& request) const;
3674 
3675         /**
3676          * <p>Attaches an internet gateway or a virtual private gateway to a VPC, enabling
3677          * connectivity between the internet and the VPC. For more information about your
3678          * VPC and internet gateway, see the <a
3679          * href="https://docs.aws.amazon.com/vpc/latest/userguide/">Amazon Virtual Private
3680          * Cloud User Guide</a>.</p><p><h3>See Also:</h3>   <a
3681          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AttachInternetGateway">AWS
3682          * API Reference</a></p>
3683          *
3684          * Queues the request into a thread executor and triggers associated callback when operation has finished.
3685          */
3686         virtual void AttachInternetGatewayAsync(const Model::AttachInternetGatewayRequest& request, const AttachInternetGatewayResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
3687 
3688         /**
3689          * <p>Attaches a network interface to an instance.</p><p><h3>See Also:</h3>   <a
3690          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AttachNetworkInterface">AWS
3691          * API Reference</a></p>
3692          */
3693         virtual Model::AttachNetworkInterfaceOutcome AttachNetworkInterface(const Model::AttachNetworkInterfaceRequest& request) const;
3694 
3695         /**
3696          * <p>Attaches a network interface to an instance.</p><p><h3>See Also:</h3>   <a
3697          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AttachNetworkInterface">AWS
3698          * API Reference</a></p>
3699          *
3700          * returns a future to the operation so that it can be executed in parallel to other requests.
3701          */
3702         virtual Model::AttachNetworkInterfaceOutcomeCallable AttachNetworkInterfaceCallable(const Model::AttachNetworkInterfaceRequest& request) const;
3703 
3704         /**
3705          * <p>Attaches a network interface to an instance.</p><p><h3>See Also:</h3>   <a
3706          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AttachNetworkInterface">AWS
3707          * API Reference</a></p>
3708          *
3709          * Queues the request into a thread executor and triggers associated callback when operation has finished.
3710          */
3711         virtual void AttachNetworkInterfaceAsync(const Model::AttachNetworkInterfaceRequest& request, const AttachNetworkInterfaceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
3712 
3713         /**
3714          * <p>Attaches an EBS volume to a running or stopped instance and exposes it to the
3715          * instance with the specified device name.</p> <p>Encrypted EBS volumes must be
3716          * attached to instances that support Amazon EBS encryption. For more information,
3717          * see <a
3718          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html">Amazon
3719          * EBS encryption</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>
3720          * <p>After you attach an EBS volume, you must make it available. For more
3721          * information, see <a
3722          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-using-volumes.html">Make
3723          * an EBS volume available for use</a>.</p> <p>If a volume has an Amazon Web
3724          * Services Marketplace product code:</p> <ul> <li> <p>The volume can be attached
3725          * only to a stopped instance.</p> </li> <li> <p>Amazon Web Services Marketplace
3726          * product codes are copied from the volume to the instance.</p> </li> <li> <p>You
3727          * must be subscribed to the product.</p> </li> <li> <p>The instance type and
3728          * operating system of the instance must support the product. For example, you
3729          * can't detach a volume from a Windows instance and attach it to a Linux
3730          * instance.</p> </li> </ul> <p>For more information, see <a
3731          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-attaching-volume.html">Attach
3732          * an Amazon EBS volume to an instance</a> in the <i>Amazon Elastic Compute Cloud
3733          * User Guide</i>.</p><p><h3>See Also:</h3>   <a
3734          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AttachVolume">AWS
3735          * API Reference</a></p>
3736          */
3737         virtual Model::AttachVolumeOutcome AttachVolume(const Model::AttachVolumeRequest& request) const;
3738 
3739         /**
3740          * <p>Attaches an EBS volume to a running or stopped instance and exposes it to the
3741          * instance with the specified device name.</p> <p>Encrypted EBS volumes must be
3742          * attached to instances that support Amazon EBS encryption. For more information,
3743          * see <a
3744          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html">Amazon
3745          * EBS encryption</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>
3746          * <p>After you attach an EBS volume, you must make it available. For more
3747          * information, see <a
3748          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-using-volumes.html">Make
3749          * an EBS volume available for use</a>.</p> <p>If a volume has an Amazon Web
3750          * Services Marketplace product code:</p> <ul> <li> <p>The volume can be attached
3751          * only to a stopped instance.</p> </li> <li> <p>Amazon Web Services Marketplace
3752          * product codes are copied from the volume to the instance.</p> </li> <li> <p>You
3753          * must be subscribed to the product.</p> </li> <li> <p>The instance type and
3754          * operating system of the instance must support the product. For example, you
3755          * can't detach a volume from a Windows instance and attach it to a Linux
3756          * instance.</p> </li> </ul> <p>For more information, see <a
3757          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-attaching-volume.html">Attach
3758          * an Amazon EBS volume to an instance</a> in the <i>Amazon Elastic Compute Cloud
3759          * User Guide</i>.</p><p><h3>See Also:</h3>   <a
3760          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AttachVolume">AWS
3761          * API Reference</a></p>
3762          *
3763          * returns a future to the operation so that it can be executed in parallel to other requests.
3764          */
3765         virtual Model::AttachVolumeOutcomeCallable AttachVolumeCallable(const Model::AttachVolumeRequest& request) const;
3766 
3767         /**
3768          * <p>Attaches an EBS volume to a running or stopped instance and exposes it to the
3769          * instance with the specified device name.</p> <p>Encrypted EBS volumes must be
3770          * attached to instances that support Amazon EBS encryption. For more information,
3771          * see <a
3772          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html">Amazon
3773          * EBS encryption</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>
3774          * <p>After you attach an EBS volume, you must make it available. For more
3775          * information, see <a
3776          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-using-volumes.html">Make
3777          * an EBS volume available for use</a>.</p> <p>If a volume has an Amazon Web
3778          * Services Marketplace product code:</p> <ul> <li> <p>The volume can be attached
3779          * only to a stopped instance.</p> </li> <li> <p>Amazon Web Services Marketplace
3780          * product codes are copied from the volume to the instance.</p> </li> <li> <p>You
3781          * must be subscribed to the product.</p> </li> <li> <p>The instance type and
3782          * operating system of the instance must support the product. For example, you
3783          * can't detach a volume from a Windows instance and attach it to a Linux
3784          * instance.</p> </li> </ul> <p>For more information, see <a
3785          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-attaching-volume.html">Attach
3786          * an Amazon EBS volume to an instance</a> in the <i>Amazon Elastic Compute Cloud
3787          * User Guide</i>.</p><p><h3>See Also:</h3>   <a
3788          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AttachVolume">AWS
3789          * API Reference</a></p>
3790          *
3791          * Queues the request into a thread executor and triggers associated callback when operation has finished.
3792          */
3793         virtual void AttachVolumeAsync(const Model::AttachVolumeRequest& request, const AttachVolumeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
3794 
3795         /**
3796          * <p>Attaches a virtual private gateway to a VPC. You can attach one virtual
3797          * private gateway to one VPC at a time.</p> <p>For more information, see <a
3798          * href="https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html">Amazon Web
3799          * Services Site-to-Site VPN</a> in the <i>Amazon Web Services Site-to-Site VPN
3800          * User Guide</i>.</p><p><h3>See Also:</h3>   <a
3801          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AttachVpnGateway">AWS
3802          * API Reference</a></p>
3803          */
3804         virtual Model::AttachVpnGatewayOutcome AttachVpnGateway(const Model::AttachVpnGatewayRequest& request) const;
3805 
3806         /**
3807          * <p>Attaches a virtual private gateway to a VPC. You can attach one virtual
3808          * private gateway to one VPC at a time.</p> <p>For more information, see <a
3809          * href="https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html">Amazon Web
3810          * Services Site-to-Site VPN</a> in the <i>Amazon Web Services Site-to-Site VPN
3811          * User Guide</i>.</p><p><h3>See Also:</h3>   <a
3812          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AttachVpnGateway">AWS
3813          * API Reference</a></p>
3814          *
3815          * returns a future to the operation so that it can be executed in parallel to other requests.
3816          */
3817         virtual Model::AttachVpnGatewayOutcomeCallable AttachVpnGatewayCallable(const Model::AttachVpnGatewayRequest& request) const;
3818 
3819         /**
3820          * <p>Attaches a virtual private gateway to a VPC. You can attach one virtual
3821          * private gateway to one VPC at a time.</p> <p>For more information, see <a
3822          * href="https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html">Amazon Web
3823          * Services Site-to-Site VPN</a> in the <i>Amazon Web Services Site-to-Site VPN
3824          * User Guide</i>.</p><p><h3>See Also:</h3>   <a
3825          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AttachVpnGateway">AWS
3826          * API Reference</a></p>
3827          *
3828          * Queues the request into a thread executor and triggers associated callback when operation has finished.
3829          */
3830         virtual void AttachVpnGatewayAsync(const Model::AttachVpnGatewayRequest& request, const AttachVpnGatewayResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
3831 
3832         /**
3833          * <p>Adds an ingress authorization rule to a Client VPN endpoint. Ingress
3834          * authorization rules act as firewall rules that grant access to networks. You
3835          * must configure ingress authorization rules to enable clients to access resources
3836          * in Amazon Web Services or on-premises networks.</p><p><h3>See Also:</h3>   <a
3837          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AuthorizeClientVpnIngress">AWS
3838          * API Reference</a></p>
3839          */
3840         virtual Model::AuthorizeClientVpnIngressOutcome AuthorizeClientVpnIngress(const Model::AuthorizeClientVpnIngressRequest& request) const;
3841 
3842         /**
3843          * <p>Adds an ingress authorization rule to a Client VPN endpoint. Ingress
3844          * authorization rules act as firewall rules that grant access to networks. You
3845          * must configure ingress authorization rules to enable clients to access resources
3846          * in Amazon Web Services or on-premises networks.</p><p><h3>See Also:</h3>   <a
3847          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AuthorizeClientVpnIngress">AWS
3848          * API Reference</a></p>
3849          *
3850          * returns a future to the operation so that it can be executed in parallel to other requests.
3851          */
3852         virtual Model::AuthorizeClientVpnIngressOutcomeCallable AuthorizeClientVpnIngressCallable(const Model::AuthorizeClientVpnIngressRequest& request) const;
3853 
3854         /**
3855          * <p>Adds an ingress authorization rule to a Client VPN endpoint. Ingress
3856          * authorization rules act as firewall rules that grant access to networks. You
3857          * must configure ingress authorization rules to enable clients to access resources
3858          * in Amazon Web Services or on-premises networks.</p><p><h3>See Also:</h3>   <a
3859          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AuthorizeClientVpnIngress">AWS
3860          * API Reference</a></p>
3861          *
3862          * Queues the request into a thread executor and triggers associated callback when operation has finished.
3863          */
3864         virtual void AuthorizeClientVpnIngressAsync(const Model::AuthorizeClientVpnIngressRequest& request, const AuthorizeClientVpnIngressResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
3865 
3866         /**
3867          * <p>[VPC only] Adds the specified outbound (egress) rules to a security group for
3868          * use with a VPC.</p> <p>An outbound rule permits instances to send traffic to the
3869          * specified IPv4 or IPv6 CIDR address ranges, or to the instances that are
3870          * associated with the specified destination security groups.</p> <p>You specify a
3871          * protocol for each rule (for example, TCP). For the TCP and UDP protocols, you
3872          * must also specify the destination port or port range. For the ICMP protocol, you
3873          * must also specify the ICMP type and code. You can use -1 for the type or code to
3874          * mean all types or all codes.</p> <p>Rule changes are propagated to affected
3875          * instances as quickly as possible. However, a small delay might occur.</p> <p>For
3876          * information about VPC security group quotas, see <a
3877          * href="https://docs.aws.amazon.com/vpc/latest/userguide/amazon-vpc-limits.html">Amazon
3878          * VPC quotas</a>.</p><p><h3>See Also:</h3>   <a
3879          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AuthorizeSecurityGroupEgress">AWS
3880          * API Reference</a></p>
3881          */
3882         virtual Model::AuthorizeSecurityGroupEgressOutcome AuthorizeSecurityGroupEgress(const Model::AuthorizeSecurityGroupEgressRequest& request) const;
3883 
3884         /**
3885          * <p>[VPC only] Adds the specified outbound (egress) rules to a security group for
3886          * use with a VPC.</p> <p>An outbound rule permits instances to send traffic to the
3887          * specified IPv4 or IPv6 CIDR address ranges, or to the instances that are
3888          * associated with the specified destination security groups.</p> <p>You specify a
3889          * protocol for each rule (for example, TCP). For the TCP and UDP protocols, you
3890          * must also specify the destination port or port range. For the ICMP protocol, you
3891          * must also specify the ICMP type and code. You can use -1 for the type or code to
3892          * mean all types or all codes.</p> <p>Rule changes are propagated to affected
3893          * instances as quickly as possible. However, a small delay might occur.</p> <p>For
3894          * information about VPC security group quotas, see <a
3895          * href="https://docs.aws.amazon.com/vpc/latest/userguide/amazon-vpc-limits.html">Amazon
3896          * VPC quotas</a>.</p><p><h3>See Also:</h3>   <a
3897          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AuthorizeSecurityGroupEgress">AWS
3898          * API Reference</a></p>
3899          *
3900          * returns a future to the operation so that it can be executed in parallel to other requests.
3901          */
3902         virtual Model::AuthorizeSecurityGroupEgressOutcomeCallable AuthorizeSecurityGroupEgressCallable(const Model::AuthorizeSecurityGroupEgressRequest& request) const;
3903 
3904         /**
3905          * <p>[VPC only] Adds the specified outbound (egress) rules to a security group for
3906          * use with a VPC.</p> <p>An outbound rule permits instances to send traffic to the
3907          * specified IPv4 or IPv6 CIDR address ranges, or to the instances that are
3908          * associated with the specified destination security groups.</p> <p>You specify a
3909          * protocol for each rule (for example, TCP). For the TCP and UDP protocols, you
3910          * must also specify the destination port or port range. For the ICMP protocol, you
3911          * must also specify the ICMP type and code. You can use -1 for the type or code to
3912          * mean all types or all codes.</p> <p>Rule changes are propagated to affected
3913          * instances as quickly as possible. However, a small delay might occur.</p> <p>For
3914          * information about VPC security group quotas, see <a
3915          * href="https://docs.aws.amazon.com/vpc/latest/userguide/amazon-vpc-limits.html">Amazon
3916          * VPC quotas</a>.</p><p><h3>See Also:</h3>   <a
3917          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AuthorizeSecurityGroupEgress">AWS
3918          * API Reference</a></p>
3919          *
3920          * Queues the request into a thread executor and triggers associated callback when operation has finished.
3921          */
3922         virtual void AuthorizeSecurityGroupEgressAsync(const Model::AuthorizeSecurityGroupEgressRequest& request, const AuthorizeSecurityGroupEgressResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
3923 
3924         /**
3925          * <p>Adds the specified inbound (ingress) rules to a security group.</p> <p>An
3926          * inbound rule permits instances to receive traffic from the specified IPv4 or
3927          * IPv6 CIDR address range, or from the instances that are associated with the
3928          * specified destination security groups.</p> <p>You specify a protocol for each
3929          * rule (for example, TCP). For TCP and UDP, you must also specify the destination
3930          * port or port range. For ICMP/ICMPv6, you must also specify the ICMP/ICMPv6 type
3931          * and code. You can use -1 to mean all types or all codes.</p> <p>Rule changes are
3932          * propagated to instances within the security group as quickly as possible.
3933          * However, a small delay might occur.</p> <p>For more information about VPC
3934          * security group quotas, see <a
3935          * href="https://docs.aws.amazon.com/vpc/latest/userguide/amazon-vpc-limits.html">Amazon
3936          * VPC quotas</a>.</p><p><h3>See Also:</h3>   <a
3937          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AuthorizeSecurityGroupIngress">AWS
3938          * API Reference</a></p>
3939          */
3940         virtual Model::AuthorizeSecurityGroupIngressOutcome AuthorizeSecurityGroupIngress(const Model::AuthorizeSecurityGroupIngressRequest& request) const;
3941 
3942         /**
3943          * <p>Adds the specified inbound (ingress) rules to a security group.</p> <p>An
3944          * inbound rule permits instances to receive traffic from the specified IPv4 or
3945          * IPv6 CIDR address range, or from the instances that are associated with the
3946          * specified destination security groups.</p> <p>You specify a protocol for each
3947          * rule (for example, TCP). For TCP and UDP, you must also specify the destination
3948          * port or port range. For ICMP/ICMPv6, you must also specify the ICMP/ICMPv6 type
3949          * and code. You can use -1 to mean all types or all codes.</p> <p>Rule changes are
3950          * propagated to instances within the security group as quickly as possible.
3951          * However, a small delay might occur.</p> <p>For more information about VPC
3952          * security group quotas, see <a
3953          * href="https://docs.aws.amazon.com/vpc/latest/userguide/amazon-vpc-limits.html">Amazon
3954          * VPC quotas</a>.</p><p><h3>See Also:</h3>   <a
3955          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AuthorizeSecurityGroupIngress">AWS
3956          * API Reference</a></p>
3957          *
3958          * returns a future to the operation so that it can be executed in parallel to other requests.
3959          */
3960         virtual Model::AuthorizeSecurityGroupIngressOutcomeCallable AuthorizeSecurityGroupIngressCallable(const Model::AuthorizeSecurityGroupIngressRequest& request) const;
3961 
3962         /**
3963          * <p>Adds the specified inbound (ingress) rules to a security group.</p> <p>An
3964          * inbound rule permits instances to receive traffic from the specified IPv4 or
3965          * IPv6 CIDR address range, or from the instances that are associated with the
3966          * specified destination security groups.</p> <p>You specify a protocol for each
3967          * rule (for example, TCP). For TCP and UDP, you must also specify the destination
3968          * port or port range. For ICMP/ICMPv6, you must also specify the ICMP/ICMPv6 type
3969          * and code. You can use -1 to mean all types or all codes.</p> <p>Rule changes are
3970          * propagated to instances within the security group as quickly as possible.
3971          * However, a small delay might occur.</p> <p>For more information about VPC
3972          * security group quotas, see <a
3973          * href="https://docs.aws.amazon.com/vpc/latest/userguide/amazon-vpc-limits.html">Amazon
3974          * VPC quotas</a>.</p><p><h3>See Also:</h3>   <a
3975          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AuthorizeSecurityGroupIngress">AWS
3976          * API Reference</a></p>
3977          *
3978          * Queues the request into a thread executor and triggers associated callback when operation has finished.
3979          */
3980         virtual void AuthorizeSecurityGroupIngressAsync(const Model::AuthorizeSecurityGroupIngressRequest& request, const AuthorizeSecurityGroupIngressResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
3981 
3982         /**
3983          * <p>Bundles an Amazon instance store-backed Windows instance.</p> <p>During
3984          * bundling, only the root device volume (C:\) is bundled. Data on other instance
3985          * store volumes is not preserved.</p>  <p>This action is not applicable for
3986          * Linux/Unix instances or Windows instances that are backed by Amazon EBS.</p>
3987          * <p><h3>See Also:</h3>   <a
3988          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/BundleInstance">AWS
3989          * API Reference</a></p>
3990          */
3991         virtual Model::BundleInstanceOutcome BundleInstance(const Model::BundleInstanceRequest& request) const;
3992 
3993         /**
3994          * <p>Bundles an Amazon instance store-backed Windows instance.</p> <p>During
3995          * bundling, only the root device volume (C:\) is bundled. Data on other instance
3996          * store volumes is not preserved.</p>  <p>This action is not applicable for
3997          * Linux/Unix instances or Windows instances that are backed by Amazon EBS.</p>
3998          * <p><h3>See Also:</h3>   <a
3999          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/BundleInstance">AWS
4000          * API Reference</a></p>
4001          *
4002          * returns a future to the operation so that it can be executed in parallel to other requests.
4003          */
4004         virtual Model::BundleInstanceOutcomeCallable BundleInstanceCallable(const Model::BundleInstanceRequest& request) const;
4005 
4006         /**
4007          * <p>Bundles an Amazon instance store-backed Windows instance.</p> <p>During
4008          * bundling, only the root device volume (C:\) is bundled. Data on other instance
4009          * store volumes is not preserved.</p>  <p>This action is not applicable for
4010          * Linux/Unix instances or Windows instances that are backed by Amazon EBS.</p>
4011          * <p><h3>See Also:</h3>   <a
4012          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/BundleInstance">AWS
4013          * API Reference</a></p>
4014          *
4015          * Queues the request into a thread executor and triggers associated callback when operation has finished.
4016          */
4017         virtual void BundleInstanceAsync(const Model::BundleInstanceRequest& request, const BundleInstanceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
4018 
4019         /**
4020          * <p>Cancels a bundling operation for an instance store-backed Windows
4021          * instance.</p><p><h3>See Also:</h3>   <a
4022          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CancelBundleTask">AWS
4023          * API Reference</a></p>
4024          */
4025         virtual Model::CancelBundleTaskOutcome CancelBundleTask(const Model::CancelBundleTaskRequest& request) const;
4026 
4027         /**
4028          * <p>Cancels a bundling operation for an instance store-backed Windows
4029          * instance.</p><p><h3>See Also:</h3>   <a
4030          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CancelBundleTask">AWS
4031          * API Reference</a></p>
4032          *
4033          * returns a future to the operation so that it can be executed in parallel to other requests.
4034          */
4035         virtual Model::CancelBundleTaskOutcomeCallable CancelBundleTaskCallable(const Model::CancelBundleTaskRequest& request) const;
4036 
4037         /**
4038          * <p>Cancels a bundling operation for an instance store-backed Windows
4039          * instance.</p><p><h3>See Also:</h3>   <a
4040          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CancelBundleTask">AWS
4041          * API Reference</a></p>
4042          *
4043          * Queues the request into a thread executor and triggers associated callback when operation has finished.
4044          */
4045         virtual void CancelBundleTaskAsync(const Model::CancelBundleTaskRequest& request, const CancelBundleTaskResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
4046 
4047         /**
4048          * <p>Cancels the specified Capacity Reservation, releases the reserved capacity,
4049          * and changes the Capacity Reservation's state to <code>cancelled</code>.</p>
4050          * <p>Instances running in the reserved capacity continue running until you stop
4051          * them. Stopped instances that target the Capacity Reservation can no longer
4052          * launch. Modify these instances to either target a different Capacity
4053          * Reservation, launch On-Demand Instance capacity, or run in any open Capacity
4054          * Reservation that has matching attributes and sufficient capacity.</p><p><h3>See
4055          * Also:</h3>   <a
4056          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CancelCapacityReservation">AWS
4057          * API Reference</a></p>
4058          */
4059         virtual Model::CancelCapacityReservationOutcome CancelCapacityReservation(const Model::CancelCapacityReservationRequest& request) const;
4060 
4061         /**
4062          * <p>Cancels the specified Capacity Reservation, releases the reserved capacity,
4063          * and changes the Capacity Reservation's state to <code>cancelled</code>.</p>
4064          * <p>Instances running in the reserved capacity continue running until you stop
4065          * them. Stopped instances that target the Capacity Reservation can no longer
4066          * launch. Modify these instances to either target a different Capacity
4067          * Reservation, launch On-Demand Instance capacity, or run in any open Capacity
4068          * Reservation that has matching attributes and sufficient capacity.</p><p><h3>See
4069          * Also:</h3>   <a
4070          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CancelCapacityReservation">AWS
4071          * API Reference</a></p>
4072          *
4073          * returns a future to the operation so that it can be executed in parallel to other requests.
4074          */
4075         virtual Model::CancelCapacityReservationOutcomeCallable CancelCapacityReservationCallable(const Model::CancelCapacityReservationRequest& request) const;
4076 
4077         /**
4078          * <p>Cancels the specified Capacity Reservation, releases the reserved capacity,
4079          * and changes the Capacity Reservation's state to <code>cancelled</code>.</p>
4080          * <p>Instances running in the reserved capacity continue running until you stop
4081          * them. Stopped instances that target the Capacity Reservation can no longer
4082          * launch. Modify these instances to either target a different Capacity
4083          * Reservation, launch On-Demand Instance capacity, or run in any open Capacity
4084          * Reservation that has matching attributes and sufficient capacity.</p><p><h3>See
4085          * Also:</h3>   <a
4086          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CancelCapacityReservation">AWS
4087          * API Reference</a></p>
4088          *
4089          * Queues the request into a thread executor and triggers associated callback when operation has finished.
4090          */
4091         virtual void CancelCapacityReservationAsync(const Model::CancelCapacityReservationRequest& request, const CancelCapacityReservationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
4092 
4093         /**
4094          * <p>Cancels one or more Capacity Reservation Fleets. When you cancel a Capacity
4095          * Reservation Fleet, the following happens:</p> <ul> <li> <p>The Capacity
4096          * Reservation Fleet's status changes to <code>cancelled</code>.</p> </li> <li>
4097          * <p>The individual Capacity Reservations in the Fleet are cancelled. Instances
4098          * running in the Capacity Reservations at the time of cancelling the Fleet
4099          * continue to run in shared capacity.</p> </li> <li> <p>The Fleet stops creating
4100          * new Capacity Reservations.</p> </li> </ul><p><h3>See Also:</h3>   <a
4101          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CancelCapacityReservationFleets">AWS
4102          * API Reference</a></p>
4103          */
4104         virtual Model::CancelCapacityReservationFleetsOutcome CancelCapacityReservationFleets(const Model::CancelCapacityReservationFleetsRequest& request) const;
4105 
4106         /**
4107          * <p>Cancels one or more Capacity Reservation Fleets. When you cancel a Capacity
4108          * Reservation Fleet, the following happens:</p> <ul> <li> <p>The Capacity
4109          * Reservation Fleet's status changes to <code>cancelled</code>.</p> </li> <li>
4110          * <p>The individual Capacity Reservations in the Fleet are cancelled. Instances
4111          * running in the Capacity Reservations at the time of cancelling the Fleet
4112          * continue to run in shared capacity.</p> </li> <li> <p>The Fleet stops creating
4113          * new Capacity Reservations.</p> </li> </ul><p><h3>See Also:</h3>   <a
4114          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CancelCapacityReservationFleets">AWS
4115          * API Reference</a></p>
4116          *
4117          * returns a future to the operation so that it can be executed in parallel to other requests.
4118          */
4119         virtual Model::CancelCapacityReservationFleetsOutcomeCallable CancelCapacityReservationFleetsCallable(const Model::CancelCapacityReservationFleetsRequest& request) const;
4120 
4121         /**
4122          * <p>Cancels one or more Capacity Reservation Fleets. When you cancel a Capacity
4123          * Reservation Fleet, the following happens:</p> <ul> <li> <p>The Capacity
4124          * Reservation Fleet's status changes to <code>cancelled</code>.</p> </li> <li>
4125          * <p>The individual Capacity Reservations in the Fleet are cancelled. Instances
4126          * running in the Capacity Reservations at the time of cancelling the Fleet
4127          * continue to run in shared capacity.</p> </li> <li> <p>The Fleet stops creating
4128          * new Capacity Reservations.</p> </li> </ul><p><h3>See Also:</h3>   <a
4129          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CancelCapacityReservationFleets">AWS
4130          * API Reference</a></p>
4131          *
4132          * Queues the request into a thread executor and triggers associated callback when operation has finished.
4133          */
4134         virtual void CancelCapacityReservationFleetsAsync(const Model::CancelCapacityReservationFleetsRequest& request, const CancelCapacityReservationFleetsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
4135 
4136         /**
4137          * <p>Cancels an active conversion task. The task can be the import of an instance
4138          * or volume. The action removes all artifacts of the conversion, including a
4139          * partially uploaded volume or instance. If the conversion is complete or is in
4140          * the process of transferring the final disk image, the command fails and returns
4141          * an exception.</p> <p>For more information, see <a
4142          * href="https://docs.aws.amazon.com/AWSEC2/latest/CommandLineReference/ec2-cli-vmimport-export.html">Importing
4143          * a Virtual Machine Using the Amazon EC2 CLI</a>.</p><p><h3>See Also:</h3>   <a
4144          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CancelConversionTask">AWS
4145          * API Reference</a></p>
4146          */
4147         virtual Model::CancelConversionTaskOutcome CancelConversionTask(const Model::CancelConversionTaskRequest& request) const;
4148 
4149         /**
4150          * <p>Cancels an active conversion task. The task can be the import of an instance
4151          * or volume. The action removes all artifacts of the conversion, including a
4152          * partially uploaded volume or instance. If the conversion is complete or is in
4153          * the process of transferring the final disk image, the command fails and returns
4154          * an exception.</p> <p>For more information, see <a
4155          * href="https://docs.aws.amazon.com/AWSEC2/latest/CommandLineReference/ec2-cli-vmimport-export.html">Importing
4156          * a Virtual Machine Using the Amazon EC2 CLI</a>.</p><p><h3>See Also:</h3>   <a
4157          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CancelConversionTask">AWS
4158          * API Reference</a></p>
4159          *
4160          * returns a future to the operation so that it can be executed in parallel to other requests.
4161          */
4162         virtual Model::CancelConversionTaskOutcomeCallable CancelConversionTaskCallable(const Model::CancelConversionTaskRequest& request) const;
4163 
4164         /**
4165          * <p>Cancels an active conversion task. The task can be the import of an instance
4166          * or volume. The action removes all artifacts of the conversion, including a
4167          * partially uploaded volume or instance. If the conversion is complete or is in
4168          * the process of transferring the final disk image, the command fails and returns
4169          * an exception.</p> <p>For more information, see <a
4170          * href="https://docs.aws.amazon.com/AWSEC2/latest/CommandLineReference/ec2-cli-vmimport-export.html">Importing
4171          * a Virtual Machine Using the Amazon EC2 CLI</a>.</p><p><h3>See Also:</h3>   <a
4172          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CancelConversionTask">AWS
4173          * API Reference</a></p>
4174          *
4175          * Queues the request into a thread executor and triggers associated callback when operation has finished.
4176          */
4177         virtual void CancelConversionTaskAsync(const Model::CancelConversionTaskRequest& request, const CancelConversionTaskResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
4178 
4179         /**
4180          * <p>Cancels an active export task. The request removes all artifacts of the
4181          * export, including any partially-created Amazon S3 objects. If the export task is
4182          * complete or is in the process of transferring the final disk image, the command
4183          * fails and returns an error.</p><p><h3>See Also:</h3>   <a
4184          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CancelExportTask">AWS
4185          * API Reference</a></p>
4186          */
4187         virtual Model::CancelExportTaskOutcome CancelExportTask(const Model::CancelExportTaskRequest& request) const;
4188 
4189         /**
4190          * <p>Cancels an active export task. The request removes all artifacts of the
4191          * export, including any partially-created Amazon S3 objects. If the export task is
4192          * complete or is in the process of transferring the final disk image, the command
4193          * fails and returns an error.</p><p><h3>See Also:</h3>   <a
4194          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CancelExportTask">AWS
4195          * API Reference</a></p>
4196          *
4197          * returns a future to the operation so that it can be executed in parallel to other requests.
4198          */
4199         virtual Model::CancelExportTaskOutcomeCallable CancelExportTaskCallable(const Model::CancelExportTaskRequest& request) const;
4200 
4201         /**
4202          * <p>Cancels an active export task. The request removes all artifacts of the
4203          * export, including any partially-created Amazon S3 objects. If the export task is
4204          * complete or is in the process of transferring the final disk image, the command
4205          * fails and returns an error.</p><p><h3>See Also:</h3>   <a
4206          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CancelExportTask">AWS
4207          * API Reference</a></p>
4208          *
4209          * Queues the request into a thread executor and triggers associated callback when operation has finished.
4210          */
4211         virtual void CancelExportTaskAsync(const Model::CancelExportTaskRequest& request, const CancelExportTaskResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
4212 
4213         /**
4214          * <p>Cancels an in-process import virtual machine or import snapshot
4215          * task.</p><p><h3>See Also:</h3>   <a
4216          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CancelImportTask">AWS
4217          * API Reference</a></p>
4218          */
4219         virtual Model::CancelImportTaskOutcome CancelImportTask(const Model::CancelImportTaskRequest& request) const;
4220 
4221         /**
4222          * <p>Cancels an in-process import virtual machine or import snapshot
4223          * task.</p><p><h3>See Also:</h3>   <a
4224          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CancelImportTask">AWS
4225          * API Reference</a></p>
4226          *
4227          * returns a future to the operation so that it can be executed in parallel to other requests.
4228          */
4229         virtual Model::CancelImportTaskOutcomeCallable CancelImportTaskCallable(const Model::CancelImportTaskRequest& request) const;
4230 
4231         /**
4232          * <p>Cancels an in-process import virtual machine or import snapshot
4233          * task.</p><p><h3>See Also:</h3>   <a
4234          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CancelImportTask">AWS
4235          * API Reference</a></p>
4236          *
4237          * Queues the request into a thread executor and triggers associated callback when operation has finished.
4238          */
4239         virtual void CancelImportTaskAsync(const Model::CancelImportTaskRequest& request, const CancelImportTaskResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
4240 
4241         /**
4242          * <p>Cancels the specified Reserved Instance listing in the Reserved Instance
4243          * Marketplace.</p> <p>For more information, see <a
4244          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-market-general.html">Reserved
4245          * Instance Marketplace</a> in the <i>Amazon EC2 User Guide</i>.</p><p><h3>See
4246          * Also:</h3>   <a
4247          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CancelReservedInstancesListing">AWS
4248          * API Reference</a></p>
4249          */
4250         virtual Model::CancelReservedInstancesListingOutcome CancelReservedInstancesListing(const Model::CancelReservedInstancesListingRequest& request) const;
4251 
4252         /**
4253          * <p>Cancels the specified Reserved Instance listing in the Reserved Instance
4254          * Marketplace.</p> <p>For more information, see <a
4255          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-market-general.html">Reserved
4256          * Instance Marketplace</a> in the <i>Amazon EC2 User Guide</i>.</p><p><h3>See
4257          * Also:</h3>   <a
4258          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CancelReservedInstancesListing">AWS
4259          * API Reference</a></p>
4260          *
4261          * returns a future to the operation so that it can be executed in parallel to other requests.
4262          */
4263         virtual Model::CancelReservedInstancesListingOutcomeCallable CancelReservedInstancesListingCallable(const Model::CancelReservedInstancesListingRequest& request) const;
4264 
4265         /**
4266          * <p>Cancels the specified Reserved Instance listing in the Reserved Instance
4267          * Marketplace.</p> <p>For more information, see <a
4268          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-market-general.html">Reserved
4269          * Instance Marketplace</a> in the <i>Amazon EC2 User Guide</i>.</p><p><h3>See
4270          * Also:</h3>   <a
4271          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CancelReservedInstancesListing">AWS
4272          * API Reference</a></p>
4273          *
4274          * Queues the request into a thread executor and triggers associated callback when operation has finished.
4275          */
4276         virtual void CancelReservedInstancesListingAsync(const Model::CancelReservedInstancesListingRequest& request, const CancelReservedInstancesListingResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
4277 
4278         /**
4279          * <p>Cancels the specified Spot Fleet requests.</p> <p>After you cancel a Spot
4280          * Fleet request, the Spot Fleet launches no new Spot Instances. You must specify
4281          * whether the Spot Fleet should also terminate its Spot Instances. If you
4282          * terminate the instances, the Spot Fleet request enters the
4283          * <code>cancelled_terminating</code> state. Otherwise, the Spot Fleet request
4284          * enters the <code>cancelled_running</code> state and the instances continue to
4285          * run until they are interrupted or you terminate them manually.</p><p><h3>See
4286          * Also:</h3>   <a
4287          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CancelSpotFleetRequests">AWS
4288          * API Reference</a></p>
4289          */
4290         virtual Model::CancelSpotFleetRequestsOutcome CancelSpotFleetRequests(const Model::CancelSpotFleetRequestsRequest& request) const;
4291 
4292         /**
4293          * <p>Cancels the specified Spot Fleet requests.</p> <p>After you cancel a Spot
4294          * Fleet request, the Spot Fleet launches no new Spot Instances. You must specify
4295          * whether the Spot Fleet should also terminate its Spot Instances. If you
4296          * terminate the instances, the Spot Fleet request enters the
4297          * <code>cancelled_terminating</code> state. Otherwise, the Spot Fleet request
4298          * enters the <code>cancelled_running</code> state and the instances continue to
4299          * run until they are interrupted or you terminate them manually.</p><p><h3>See
4300          * Also:</h3>   <a
4301          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CancelSpotFleetRequests">AWS
4302          * API Reference</a></p>
4303          *
4304          * returns a future to the operation so that it can be executed in parallel to other requests.
4305          */
4306         virtual Model::CancelSpotFleetRequestsOutcomeCallable CancelSpotFleetRequestsCallable(const Model::CancelSpotFleetRequestsRequest& request) const;
4307 
4308         /**
4309          * <p>Cancels the specified Spot Fleet requests.</p> <p>After you cancel a Spot
4310          * Fleet request, the Spot Fleet launches no new Spot Instances. You must specify
4311          * whether the Spot Fleet should also terminate its Spot Instances. If you
4312          * terminate the instances, the Spot Fleet request enters the
4313          * <code>cancelled_terminating</code> state. Otherwise, the Spot Fleet request
4314          * enters the <code>cancelled_running</code> state and the instances continue to
4315          * run until they are interrupted or you terminate them manually.</p><p><h3>See
4316          * Also:</h3>   <a
4317          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CancelSpotFleetRequests">AWS
4318          * API Reference</a></p>
4319          *
4320          * Queues the request into a thread executor and triggers associated callback when operation has finished.
4321          */
4322         virtual void CancelSpotFleetRequestsAsync(const Model::CancelSpotFleetRequestsRequest& request, const CancelSpotFleetRequestsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
4323 
4324         /**
4325          * <p>Cancels one or more Spot Instance requests.</p>  <p>Canceling a
4326          * Spot Instance request does not terminate running Spot Instances associated with
4327          * the request.</p> <p><h3>See Also:</h3>   <a
4328          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CancelSpotInstanceRequests">AWS
4329          * API Reference</a></p>
4330          */
4331         virtual Model::CancelSpotInstanceRequestsOutcome CancelSpotInstanceRequests(const Model::CancelSpotInstanceRequestsRequest& request) const;
4332 
4333         /**
4334          * <p>Cancels one or more Spot Instance requests.</p>  <p>Canceling a
4335          * Spot Instance request does not terminate running Spot Instances associated with
4336          * the request.</p> <p><h3>See Also:</h3>   <a
4337          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CancelSpotInstanceRequests">AWS
4338          * API Reference</a></p>
4339          *
4340          * returns a future to the operation so that it can be executed in parallel to other requests.
4341          */
4342         virtual Model::CancelSpotInstanceRequestsOutcomeCallable CancelSpotInstanceRequestsCallable(const Model::CancelSpotInstanceRequestsRequest& request) const;
4343 
4344         /**
4345          * <p>Cancels one or more Spot Instance requests.</p>  <p>Canceling a
4346          * Spot Instance request does not terminate running Spot Instances associated with
4347          * the request.</p> <p><h3>See Also:</h3>   <a
4348          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CancelSpotInstanceRequests">AWS
4349          * API Reference</a></p>
4350          *
4351          * Queues the request into a thread executor and triggers associated callback when operation has finished.
4352          */
4353         virtual void CancelSpotInstanceRequestsAsync(const Model::CancelSpotInstanceRequestsRequest& request, const CancelSpotInstanceRequestsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
4354 
4355         /**
4356          * <p>Determines whether a product code is associated with an instance. This action
4357          * can only be used by the owner of the product code. It is useful when a product
4358          * code owner must verify whether another user's instance is eligible for
4359          * support.</p><p><h3>See Also:</h3>   <a
4360          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ConfirmProductInstance">AWS
4361          * API Reference</a></p>
4362          */
4363         virtual Model::ConfirmProductInstanceOutcome ConfirmProductInstance(const Model::ConfirmProductInstanceRequest& request) const;
4364 
4365         /**
4366          * <p>Determines whether a product code is associated with an instance. This action
4367          * can only be used by the owner of the product code. It is useful when a product
4368          * code owner must verify whether another user's instance is eligible for
4369          * support.</p><p><h3>See Also:</h3>   <a
4370          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ConfirmProductInstance">AWS
4371          * API Reference</a></p>
4372          *
4373          * returns a future to the operation so that it can be executed in parallel to other requests.
4374          */
4375         virtual Model::ConfirmProductInstanceOutcomeCallable ConfirmProductInstanceCallable(const Model::ConfirmProductInstanceRequest& request) const;
4376 
4377         /**
4378          * <p>Determines whether a product code is associated with an instance. This action
4379          * can only be used by the owner of the product code. It is useful when a product
4380          * code owner must verify whether another user's instance is eligible for
4381          * support.</p><p><h3>See Also:</h3>   <a
4382          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ConfirmProductInstance">AWS
4383          * API Reference</a></p>
4384          *
4385          * Queues the request into a thread executor and triggers associated callback when operation has finished.
4386          */
4387         virtual void ConfirmProductInstanceAsync(const Model::ConfirmProductInstanceRequest& request, const ConfirmProductInstanceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
4388 
4389         /**
4390          * <p>Copies the specified Amazon FPGA Image (AFI) to the current
4391          * Region.</p><p><h3>See Also:</h3>   <a
4392          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CopyFpgaImage">AWS
4393          * API Reference</a></p>
4394          */
4395         virtual Model::CopyFpgaImageOutcome CopyFpgaImage(const Model::CopyFpgaImageRequest& request) const;
4396 
4397         /**
4398          * <p>Copies the specified Amazon FPGA Image (AFI) to the current
4399          * Region.</p><p><h3>See Also:</h3>   <a
4400          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CopyFpgaImage">AWS
4401          * API Reference</a></p>
4402          *
4403          * returns a future to the operation so that it can be executed in parallel to other requests.
4404          */
4405         virtual Model::CopyFpgaImageOutcomeCallable CopyFpgaImageCallable(const Model::CopyFpgaImageRequest& request) const;
4406 
4407         /**
4408          * <p>Copies the specified Amazon FPGA Image (AFI) to the current
4409          * Region.</p><p><h3>See Also:</h3>   <a
4410          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CopyFpgaImage">AWS
4411          * API Reference</a></p>
4412          *
4413          * Queues the request into a thread executor and triggers associated callback when operation has finished.
4414          */
4415         virtual void CopyFpgaImageAsync(const Model::CopyFpgaImageRequest& request, const CopyFpgaImageResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
4416 
4417         /**
4418          * <p>Initiates the copy of an AMI. You can copy an AMI from one Region to another,
4419          * or from a Region to an Outpost. You can't copy an AMI from an Outpost to a
4420          * Region, from one Outpost to another, or within the same Outpost. To copy an AMI
4421          * to another partition, see <a
4422          * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateStoreImageTask.html">CreateStoreImageTask</a>.</p>
4423          * <p>To copy an AMI from one Region to another, specify the source Region using
4424          * the <b>SourceRegion</b> parameter, and specify the destination Region using its
4425          * endpoint. Copies of encrypted backing snapshots for the AMI are encrypted.
4426          * Copies of unencrypted backing snapshots remain unencrypted, unless you set
4427          * <code>Encrypted</code> during the copy operation. You cannot create an
4428          * unencrypted copy of an encrypted backing snapshot.</p> <p>To copy an AMI from a
4429          * Region to an Outpost, specify the source Region using the <b>SourceRegion</b>
4430          * parameter, and specify the ARN of the destination Outpost using
4431          * <b>DestinationOutpostArn</b>. Backing snapshots copied to an Outpost are
4432          * encrypted by default using the default encryption key for the Region, or a
4433          * different key that you specify in the request using <b>KmsKeyId</b>. Outposts do
4434          * not support unencrypted snapshots. For more information, <a
4435          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/snapshots-outposts.html#ami">
4436          * Amazon EBS local snapshots on Outposts</a> in the <i>Amazon Elastic Compute
4437          * Cloud User Guide</i>.</p> <p>For more information about the prerequisites and
4438          * limits when copying an AMI, see <a
4439          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/CopyingAMIs.html">Copying
4440          * an AMI</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p><p><h3>See
4441          * Also:</h3>   <a
4442          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CopyImage">AWS API
4443          * Reference</a></p>
4444          */
4445         virtual Model::CopyImageOutcome CopyImage(const Model::CopyImageRequest& request) const;
4446 
4447         /**
4448          * <p>Initiates the copy of an AMI. You can copy an AMI from one Region to another,
4449          * or from a Region to an Outpost. You can't copy an AMI from an Outpost to a
4450          * Region, from one Outpost to another, or within the same Outpost. To copy an AMI
4451          * to another partition, see <a
4452          * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateStoreImageTask.html">CreateStoreImageTask</a>.</p>
4453          * <p>To copy an AMI from one Region to another, specify the source Region using
4454          * the <b>SourceRegion</b> parameter, and specify the destination Region using its
4455          * endpoint. Copies of encrypted backing snapshots for the AMI are encrypted.
4456          * Copies of unencrypted backing snapshots remain unencrypted, unless you set
4457          * <code>Encrypted</code> during the copy operation. You cannot create an
4458          * unencrypted copy of an encrypted backing snapshot.</p> <p>To copy an AMI from a
4459          * Region to an Outpost, specify the source Region using the <b>SourceRegion</b>
4460          * parameter, and specify the ARN of the destination Outpost using
4461          * <b>DestinationOutpostArn</b>. Backing snapshots copied to an Outpost are
4462          * encrypted by default using the default encryption key for the Region, or a
4463          * different key that you specify in the request using <b>KmsKeyId</b>. Outposts do
4464          * not support unencrypted snapshots. For more information, <a
4465          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/snapshots-outposts.html#ami">
4466          * Amazon EBS local snapshots on Outposts</a> in the <i>Amazon Elastic Compute
4467          * Cloud User Guide</i>.</p> <p>For more information about the prerequisites and
4468          * limits when copying an AMI, see <a
4469          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/CopyingAMIs.html">Copying
4470          * an AMI</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p><p><h3>See
4471          * Also:</h3>   <a
4472          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CopyImage">AWS API
4473          * Reference</a></p>
4474          *
4475          * returns a future to the operation so that it can be executed in parallel to other requests.
4476          */
4477         virtual Model::CopyImageOutcomeCallable CopyImageCallable(const Model::CopyImageRequest& request) const;
4478 
4479         /**
4480          * <p>Initiates the copy of an AMI. You can copy an AMI from one Region to another,
4481          * or from a Region to an Outpost. You can't copy an AMI from an Outpost to a
4482          * Region, from one Outpost to another, or within the same Outpost. To copy an AMI
4483          * to another partition, see <a
4484          * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateStoreImageTask.html">CreateStoreImageTask</a>.</p>
4485          * <p>To copy an AMI from one Region to another, specify the source Region using
4486          * the <b>SourceRegion</b> parameter, and specify the destination Region using its
4487          * endpoint. Copies of encrypted backing snapshots for the AMI are encrypted.
4488          * Copies of unencrypted backing snapshots remain unencrypted, unless you set
4489          * <code>Encrypted</code> during the copy operation. You cannot create an
4490          * unencrypted copy of an encrypted backing snapshot.</p> <p>To copy an AMI from a
4491          * Region to an Outpost, specify the source Region using the <b>SourceRegion</b>
4492          * parameter, and specify the ARN of the destination Outpost using
4493          * <b>DestinationOutpostArn</b>. Backing snapshots copied to an Outpost are
4494          * encrypted by default using the default encryption key for the Region, or a
4495          * different key that you specify in the request using <b>KmsKeyId</b>. Outposts do
4496          * not support unencrypted snapshots. For more information, <a
4497          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/snapshots-outposts.html#ami">
4498          * Amazon EBS local snapshots on Outposts</a> in the <i>Amazon Elastic Compute
4499          * Cloud User Guide</i>.</p> <p>For more information about the prerequisites and
4500          * limits when copying an AMI, see <a
4501          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/CopyingAMIs.html">Copying
4502          * an AMI</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p><p><h3>See
4503          * Also:</h3>   <a
4504          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CopyImage">AWS API
4505          * Reference</a></p>
4506          *
4507          * Queues the request into a thread executor and triggers associated callback when operation has finished.
4508          */
4509         virtual void CopyImageAsync(const Model::CopyImageRequest& request, const CopyImageResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
4510 
4511         /**
4512          * <p>Copies a point-in-time snapshot of an EBS volume and stores it in Amazon S3.
4513          * You can copy a snapshot within the same Region, from one Region to another, or
4514          * from a Region to an Outpost. You can't copy a snapshot from an Outpost to a
4515          * Region, from one Outpost to another, or within the same Outpost.</p> <p>You can
4516          * use the snapshot to create EBS volumes or Amazon Machine Images (AMIs).</p>
4517          * <p>When copying snapshots to a Region, copies of encrypted EBS snapshots remain
4518          * encrypted. Copies of unencrypted snapshots remain unencrypted, unless you enable
4519          * encryption for the snapshot copy operation. By default, encrypted snapshot
4520          * copies use the default Key Management Service (KMS) KMS key; however, you can
4521          * specify a different KMS key. To copy an encrypted snapshot that has been shared
4522          * from another account, you must have permissions for the KMS key used to encrypt
4523          * the snapshot.</p> <p>Snapshots copied to an Outpost are encrypted by default
4524          * using the default encryption key for the Region, or a different key that you
4525          * specify in the request using <b>KmsKeyId</b>. Outposts do not support
4526          * unencrypted snapshots. For more information, <a
4527          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/snapshots-outposts.html#ami">
4528          * Amazon EBS local snapshots on Outposts</a> in the <i>Amazon Elastic Compute
4529          * Cloud User Guide</i>.</p> <p>Snapshots created by copying another snapshot have
4530          * an arbitrary volume ID that should not be used for any purpose.</p> <p>For more
4531          * information, see <a
4532          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-copy-snapshot.html">Copy
4533          * an Amazon EBS snapshot</a> in the <i>Amazon Elastic Compute Cloud User
4534          * Guide</i>.</p><p><h3>See Also:</h3>   <a
4535          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CopySnapshot">AWS
4536          * API Reference</a></p>
4537          */
4538         virtual Model::CopySnapshotOutcome CopySnapshot(const Model::CopySnapshotRequest& request) const;
4539 
4540         /**
4541          * <p>Copies a point-in-time snapshot of an EBS volume and stores it in Amazon S3.
4542          * You can copy a snapshot within the same Region, from one Region to another, or
4543          * from a Region to an Outpost. You can't copy a snapshot from an Outpost to a
4544          * Region, from one Outpost to another, or within the same Outpost.</p> <p>You can
4545          * use the snapshot to create EBS volumes or Amazon Machine Images (AMIs).</p>
4546          * <p>When copying snapshots to a Region, copies of encrypted EBS snapshots remain
4547          * encrypted. Copies of unencrypted snapshots remain unencrypted, unless you enable
4548          * encryption for the snapshot copy operation. By default, encrypted snapshot
4549          * copies use the default Key Management Service (KMS) KMS key; however, you can
4550          * specify a different KMS key. To copy an encrypted snapshot that has been shared
4551          * from another account, you must have permissions for the KMS key used to encrypt
4552          * the snapshot.</p> <p>Snapshots copied to an Outpost are encrypted by default
4553          * using the default encryption key for the Region, or a different key that you
4554          * specify in the request using <b>KmsKeyId</b>. Outposts do not support
4555          * unencrypted snapshots. For more information, <a
4556          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/snapshots-outposts.html#ami">
4557          * Amazon EBS local snapshots on Outposts</a> in the <i>Amazon Elastic Compute
4558          * Cloud User Guide</i>.</p> <p>Snapshots created by copying another snapshot have
4559          * an arbitrary volume ID that should not be used for any purpose.</p> <p>For more
4560          * information, see <a
4561          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-copy-snapshot.html">Copy
4562          * an Amazon EBS snapshot</a> in the <i>Amazon Elastic Compute Cloud User
4563          * Guide</i>.</p><p><h3>See Also:</h3>   <a
4564          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CopySnapshot">AWS
4565          * API Reference</a></p>
4566          *
4567          * returns a future to the operation so that it can be executed in parallel to other requests.
4568          */
4569         virtual Model::CopySnapshotOutcomeCallable CopySnapshotCallable(const Model::CopySnapshotRequest& request) const;
4570 
4571         /**
4572          * <p>Copies a point-in-time snapshot of an EBS volume and stores it in Amazon S3.
4573          * You can copy a snapshot within the same Region, from one Region to another, or
4574          * from a Region to an Outpost. You can't copy a snapshot from an Outpost to a
4575          * Region, from one Outpost to another, or within the same Outpost.</p> <p>You can
4576          * use the snapshot to create EBS volumes or Amazon Machine Images (AMIs).</p>
4577          * <p>When copying snapshots to a Region, copies of encrypted EBS snapshots remain
4578          * encrypted. Copies of unencrypted snapshots remain unencrypted, unless you enable
4579          * encryption for the snapshot copy operation. By default, encrypted snapshot
4580          * copies use the default Key Management Service (KMS) KMS key; however, you can
4581          * specify a different KMS key. To copy an encrypted snapshot that has been shared
4582          * from another account, you must have permissions for the KMS key used to encrypt
4583          * the snapshot.</p> <p>Snapshots copied to an Outpost are encrypted by default
4584          * using the default encryption key for the Region, or a different key that you
4585          * specify in the request using <b>KmsKeyId</b>. Outposts do not support
4586          * unencrypted snapshots. For more information, <a
4587          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/snapshots-outposts.html#ami">
4588          * Amazon EBS local snapshots on Outposts</a> in the <i>Amazon Elastic Compute
4589          * Cloud User Guide</i>.</p> <p>Snapshots created by copying another snapshot have
4590          * an arbitrary volume ID that should not be used for any purpose.</p> <p>For more
4591          * information, see <a
4592          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-copy-snapshot.html">Copy
4593          * an Amazon EBS snapshot</a> in the <i>Amazon Elastic Compute Cloud User
4594          * Guide</i>.</p><p><h3>See Also:</h3>   <a
4595          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CopySnapshot">AWS
4596          * API Reference</a></p>
4597          *
4598          * Queues the request into a thread executor and triggers associated callback when operation has finished.
4599          */
4600         virtual void CopySnapshotAsync(const Model::CopySnapshotRequest& request, const CopySnapshotResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
4601 
4602         /**
4603          * <p>Creates a new Capacity Reservation with the specified attributes.</p>
4604          * <p>Capacity Reservations enable you to reserve capacity for your Amazon EC2
4605          * instances in a specific Availability Zone for any duration. This gives you the
4606          * flexibility to selectively add capacity reservations and still get the Regional
4607          * RI discounts for that usage. By creating Capacity Reservations, you ensure that
4608          * you always have access to Amazon EC2 capacity when you need it, for as long as
4609          * you need it. For more information, see <a
4610          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-capacity-reservations.html">Capacity
4611          * Reservations</a> in the <i>Amazon EC2 User Guide</i>.</p> <p>Your request to
4612          * create a Capacity Reservation could fail if Amazon EC2 does not have sufficient
4613          * capacity to fulfill the request. If your request fails due to Amazon EC2
4614          * capacity constraints, either try again at a later time, try in a different
4615          * Availability Zone, or request a smaller capacity reservation. If your
4616          * application is flexible across instance types and sizes, try to create a
4617          * Capacity Reservation with different instance attributes.</p> <p>Your request
4618          * could also fail if the requested quantity exceeds your On-Demand Instance limit
4619          * for the selected instance type. If your request fails due to limit constraints,
4620          * increase your On-Demand Instance limit for the required instance type and try
4621          * again. For more information about increasing your instance limits, see <a
4622          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-resource-limits.html">Amazon
4623          * EC2 Service Quotas</a> in the <i>Amazon EC2 User Guide</i>.</p><p><h3>See
4624          * Also:</h3>   <a
4625          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateCapacityReservation">AWS
4626          * API Reference</a></p>
4627          */
4628         virtual Model::CreateCapacityReservationOutcome CreateCapacityReservation(const Model::CreateCapacityReservationRequest& request) const;
4629 
4630         /**
4631          * <p>Creates a new Capacity Reservation with the specified attributes.</p>
4632          * <p>Capacity Reservations enable you to reserve capacity for your Amazon EC2
4633          * instances in a specific Availability Zone for any duration. This gives you the
4634          * flexibility to selectively add capacity reservations and still get the Regional
4635          * RI discounts for that usage. By creating Capacity Reservations, you ensure that
4636          * you always have access to Amazon EC2 capacity when you need it, for as long as
4637          * you need it. For more information, see <a
4638          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-capacity-reservations.html">Capacity
4639          * Reservations</a> in the <i>Amazon EC2 User Guide</i>.</p> <p>Your request to
4640          * create a Capacity Reservation could fail if Amazon EC2 does not have sufficient
4641          * capacity to fulfill the request. If your request fails due to Amazon EC2
4642          * capacity constraints, either try again at a later time, try in a different
4643          * Availability Zone, or request a smaller capacity reservation. If your
4644          * application is flexible across instance types and sizes, try to create a
4645          * Capacity Reservation with different instance attributes.</p> <p>Your request
4646          * could also fail if the requested quantity exceeds your On-Demand Instance limit
4647          * for the selected instance type. If your request fails due to limit constraints,
4648          * increase your On-Demand Instance limit for the required instance type and try
4649          * again. For more information about increasing your instance limits, see <a
4650          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-resource-limits.html">Amazon
4651          * EC2 Service Quotas</a> in the <i>Amazon EC2 User Guide</i>.</p><p><h3>See
4652          * Also:</h3>   <a
4653          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateCapacityReservation">AWS
4654          * API Reference</a></p>
4655          *
4656          * returns a future to the operation so that it can be executed in parallel to other requests.
4657          */
4658         virtual Model::CreateCapacityReservationOutcomeCallable CreateCapacityReservationCallable(const Model::CreateCapacityReservationRequest& request) const;
4659 
4660         /**
4661          * <p>Creates a new Capacity Reservation with the specified attributes.</p>
4662          * <p>Capacity Reservations enable you to reserve capacity for your Amazon EC2
4663          * instances in a specific Availability Zone for any duration. This gives you the
4664          * flexibility to selectively add capacity reservations and still get the Regional
4665          * RI discounts for that usage. By creating Capacity Reservations, you ensure that
4666          * you always have access to Amazon EC2 capacity when you need it, for as long as
4667          * you need it. For more information, see <a
4668          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-capacity-reservations.html">Capacity
4669          * Reservations</a> in the <i>Amazon EC2 User Guide</i>.</p> <p>Your request to
4670          * create a Capacity Reservation could fail if Amazon EC2 does not have sufficient
4671          * capacity to fulfill the request. If your request fails due to Amazon EC2
4672          * capacity constraints, either try again at a later time, try in a different
4673          * Availability Zone, or request a smaller capacity reservation. If your
4674          * application is flexible across instance types and sizes, try to create a
4675          * Capacity Reservation with different instance attributes.</p> <p>Your request
4676          * could also fail if the requested quantity exceeds your On-Demand Instance limit
4677          * for the selected instance type. If your request fails due to limit constraints,
4678          * increase your On-Demand Instance limit for the required instance type and try
4679          * again. For more information about increasing your instance limits, see <a
4680          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-resource-limits.html">Amazon
4681          * EC2 Service Quotas</a> in the <i>Amazon EC2 User Guide</i>.</p><p><h3>See
4682          * Also:</h3>   <a
4683          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateCapacityReservation">AWS
4684          * API Reference</a></p>
4685          *
4686          * Queues the request into a thread executor and triggers associated callback when operation has finished.
4687          */
4688         virtual void CreateCapacityReservationAsync(const Model::CreateCapacityReservationRequest& request, const CreateCapacityReservationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
4689 
4690         /**
4691          * <p>Creates a Capacity Reservation Fleet. For more information, see <a
4692          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/work-with-cr-fleets.html#create-crfleet">Create
4693          * a Capacity Reservation Fleet</a> in the Amazon EC2 User Guide.</p><p><h3>See
4694          * Also:</h3>   <a
4695          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateCapacityReservationFleet">AWS
4696          * API Reference</a></p>
4697          */
4698         virtual Model::CreateCapacityReservationFleetOutcome CreateCapacityReservationFleet(const Model::CreateCapacityReservationFleetRequest& request) const;
4699 
4700         /**
4701          * <p>Creates a Capacity Reservation Fleet. For more information, see <a
4702          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/work-with-cr-fleets.html#create-crfleet">Create
4703          * a Capacity Reservation Fleet</a> in the Amazon EC2 User Guide.</p><p><h3>See
4704          * Also:</h3>   <a
4705          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateCapacityReservationFleet">AWS
4706          * API Reference</a></p>
4707          *
4708          * returns a future to the operation so that it can be executed in parallel to other requests.
4709          */
4710         virtual Model::CreateCapacityReservationFleetOutcomeCallable CreateCapacityReservationFleetCallable(const Model::CreateCapacityReservationFleetRequest& request) const;
4711 
4712         /**
4713          * <p>Creates a Capacity Reservation Fleet. For more information, see <a
4714          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/work-with-cr-fleets.html#create-crfleet">Create
4715          * a Capacity Reservation Fleet</a> in the Amazon EC2 User Guide.</p><p><h3>See
4716          * Also:</h3>   <a
4717          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateCapacityReservationFleet">AWS
4718          * API Reference</a></p>
4719          *
4720          * Queues the request into a thread executor and triggers associated callback when operation has finished.
4721          */
4722         virtual void CreateCapacityReservationFleetAsync(const Model::CreateCapacityReservationFleetRequest& request, const CreateCapacityReservationFleetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
4723 
4724         /**
4725          * <p>Creates a carrier gateway. For more information about carrier gateways, see
4726          * <a
4727          * href="https://docs.aws.amazon.com/wavelength/latest/developerguide/how-wavelengths-work.html#wavelength-carrier-gateway">Carrier
4728          * gateways</a> in the <i>Amazon Web Services Wavelength Developer
4729          * Guide</i>.</p><p><h3>See Also:</h3>   <a
4730          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateCarrierGateway">AWS
4731          * API Reference</a></p>
4732          */
4733         virtual Model::CreateCarrierGatewayOutcome CreateCarrierGateway(const Model::CreateCarrierGatewayRequest& request) const;
4734 
4735         /**
4736          * <p>Creates a carrier gateway. For more information about carrier gateways, see
4737          * <a
4738          * href="https://docs.aws.amazon.com/wavelength/latest/developerguide/how-wavelengths-work.html#wavelength-carrier-gateway">Carrier
4739          * gateways</a> in the <i>Amazon Web Services Wavelength Developer
4740          * Guide</i>.</p><p><h3>See Also:</h3>   <a
4741          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateCarrierGateway">AWS
4742          * API Reference</a></p>
4743          *
4744          * returns a future to the operation so that it can be executed in parallel to other requests.
4745          */
4746         virtual Model::CreateCarrierGatewayOutcomeCallable CreateCarrierGatewayCallable(const Model::CreateCarrierGatewayRequest& request) const;
4747 
4748         /**
4749          * <p>Creates a carrier gateway. For more information about carrier gateways, see
4750          * <a
4751          * href="https://docs.aws.amazon.com/wavelength/latest/developerguide/how-wavelengths-work.html#wavelength-carrier-gateway">Carrier
4752          * gateways</a> in the <i>Amazon Web Services Wavelength Developer
4753          * Guide</i>.</p><p><h3>See Also:</h3>   <a
4754          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateCarrierGateway">AWS
4755          * API Reference</a></p>
4756          *
4757          * Queues the request into a thread executor and triggers associated callback when operation has finished.
4758          */
4759         virtual void CreateCarrierGatewayAsync(const Model::CreateCarrierGatewayRequest& request, const CreateCarrierGatewayResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
4760 
4761         /**
4762          * <p>Creates a Client VPN endpoint. A Client VPN endpoint is the resource you
4763          * create and configure to enable and manage client VPN sessions. It is the
4764          * destination endpoint at which all client VPN sessions are
4765          * terminated.</p><p><h3>See Also:</h3>   <a
4766          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateClientVpnEndpoint">AWS
4767          * API Reference</a></p>
4768          */
4769         virtual Model::CreateClientVpnEndpointOutcome CreateClientVpnEndpoint(const Model::CreateClientVpnEndpointRequest& request) const;
4770 
4771         /**
4772          * <p>Creates a Client VPN endpoint. A Client VPN endpoint is the resource you
4773          * create and configure to enable and manage client VPN sessions. It is the
4774          * destination endpoint at which all client VPN sessions are
4775          * terminated.</p><p><h3>See Also:</h3>   <a
4776          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateClientVpnEndpoint">AWS
4777          * API Reference</a></p>
4778          *
4779          * returns a future to the operation so that it can be executed in parallel to other requests.
4780          */
4781         virtual Model::CreateClientVpnEndpointOutcomeCallable CreateClientVpnEndpointCallable(const Model::CreateClientVpnEndpointRequest& request) const;
4782 
4783         /**
4784          * <p>Creates a Client VPN endpoint. A Client VPN endpoint is the resource you
4785          * create and configure to enable and manage client VPN sessions. It is the
4786          * destination endpoint at which all client VPN sessions are
4787          * terminated.</p><p><h3>See Also:</h3>   <a
4788          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateClientVpnEndpoint">AWS
4789          * API Reference</a></p>
4790          *
4791          * Queues the request into a thread executor and triggers associated callback when operation has finished.
4792          */
4793         virtual void CreateClientVpnEndpointAsync(const Model::CreateClientVpnEndpointRequest& request, const CreateClientVpnEndpointResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
4794 
4795         /**
4796          * <p>Adds a route to a network to a Client VPN endpoint. Each Client VPN endpoint
4797          * has a route table that describes the available destination network routes. Each
4798          * route in the route table specifies the path for traffic to specific resources or
4799          * networks.</p><p><h3>See Also:</h3>   <a
4800          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateClientVpnRoute">AWS
4801          * API Reference</a></p>
4802          */
4803         virtual Model::CreateClientVpnRouteOutcome CreateClientVpnRoute(const Model::CreateClientVpnRouteRequest& request) const;
4804 
4805         /**
4806          * <p>Adds a route to a network to a Client VPN endpoint. Each Client VPN endpoint
4807          * has a route table that describes the available destination network routes. Each
4808          * route in the route table specifies the path for traffic to specific resources or
4809          * networks.</p><p><h3>See Also:</h3>   <a
4810          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateClientVpnRoute">AWS
4811          * API Reference</a></p>
4812          *
4813          * returns a future to the operation so that it can be executed in parallel to other requests.
4814          */
4815         virtual Model::CreateClientVpnRouteOutcomeCallable CreateClientVpnRouteCallable(const Model::CreateClientVpnRouteRequest& request) const;
4816 
4817         /**
4818          * <p>Adds a route to a network to a Client VPN endpoint. Each Client VPN endpoint
4819          * has a route table that describes the available destination network routes. Each
4820          * route in the route table specifies the path for traffic to specific resources or
4821          * networks.</p><p><h3>See Also:</h3>   <a
4822          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateClientVpnRoute">AWS
4823          * API Reference</a></p>
4824          *
4825          * Queues the request into a thread executor and triggers associated callback when operation has finished.
4826          */
4827         virtual void CreateClientVpnRouteAsync(const Model::CreateClientVpnRouteRequest& request, const CreateClientVpnRouteResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
4828 
4829         /**
4830          * <p>Provides information to Amazon Web Services about your VPN customer gateway
4831          * device. The customer gateway is the appliance at your end of the VPN connection.
4832          * (The device on the Amazon Web Services side of the VPN connection is the virtual
4833          * private gateway.) You must provide the internet-routable IP address of the
4834          * customer gateway's external interface. The IP address must be static and can be
4835          * behind a device performing network address translation (NAT).</p> <p>For devices
4836          * that use Border Gateway Protocol (BGP), you can also provide the device's BGP
4837          * Autonomous System Number (ASN). You can use an existing ASN assigned to your
4838          * network. If you don't have an ASN already, you can use a private ASN (in the
4839          * 64512 - 65534 range).</p>  <p>Amazon EC2 supports all 4-byte ASN numbers
4840          * in the range of 1 - 2147483647, with the exception of the following:</p> <ul>
4841          * <li> <p>7224 - reserved in the <code>us-east-1</code> Region</p> </li> <li>
4842          * <p>9059 - reserved in the <code>eu-west-1</code> Region</p> </li> <li> <p>17943
4843          * - reserved in the <code>ap-southeast-1</code> Region</p> </li> <li> <p>10124 -
4844          * reserved in the <code>ap-northeast-1</code> Region</p> </li> </ul>
4845          * <p>For more information, see <a
4846          * href="https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html">Amazon Web
4847          * Services Site-to-Site VPN</a> in the <i>Amazon Web Services Site-to-Site VPN
4848          * User Guide</i>.</p>  <p>To create more than one customer gateway with
4849          * the same VPN type, IP address, and BGP ASN, specify a unique device name for
4850          * each customer gateway. Identical requests return information about the existing
4851          * customer gateway and do not create new customer gateways.</p>
4852          * <p><h3>See Also:</h3>   <a
4853          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateCustomerGateway">AWS
4854          * API Reference</a></p>
4855          */
4856         virtual Model::CreateCustomerGatewayOutcome CreateCustomerGateway(const Model::CreateCustomerGatewayRequest& request) const;
4857 
4858         /**
4859          * <p>Provides information to Amazon Web Services about your VPN customer gateway
4860          * device. The customer gateway is the appliance at your end of the VPN connection.
4861          * (The device on the Amazon Web Services side of the VPN connection is the virtual
4862          * private gateway.) You must provide the internet-routable IP address of the
4863          * customer gateway's external interface. The IP address must be static and can be
4864          * behind a device performing network address translation (NAT).</p> <p>For devices
4865          * that use Border Gateway Protocol (BGP), you can also provide the device's BGP
4866          * Autonomous System Number (ASN). You can use an existing ASN assigned to your
4867          * network. If you don't have an ASN already, you can use a private ASN (in the
4868          * 64512 - 65534 range).</p>  <p>Amazon EC2 supports all 4-byte ASN numbers
4869          * in the range of 1 - 2147483647, with the exception of the following:</p> <ul>
4870          * <li> <p>7224 - reserved in the <code>us-east-1</code> Region</p> </li> <li>
4871          * <p>9059 - reserved in the <code>eu-west-1</code> Region</p> </li> <li> <p>17943
4872          * - reserved in the <code>ap-southeast-1</code> Region</p> </li> <li> <p>10124 -
4873          * reserved in the <code>ap-northeast-1</code> Region</p> </li> </ul>
4874          * <p>For more information, see <a
4875          * href="https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html">Amazon Web
4876          * Services Site-to-Site VPN</a> in the <i>Amazon Web Services Site-to-Site VPN
4877          * User Guide</i>.</p>  <p>To create more than one customer gateway with
4878          * the same VPN type, IP address, and BGP ASN, specify a unique device name for
4879          * each customer gateway. Identical requests return information about the existing
4880          * customer gateway and do not create new customer gateways.</p>
4881          * <p><h3>See Also:</h3>   <a
4882          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateCustomerGateway">AWS
4883          * API Reference</a></p>
4884          *
4885          * returns a future to the operation so that it can be executed in parallel to other requests.
4886          */
4887         virtual Model::CreateCustomerGatewayOutcomeCallable CreateCustomerGatewayCallable(const Model::CreateCustomerGatewayRequest& request) const;
4888 
4889         /**
4890          * <p>Provides information to Amazon Web Services about your VPN customer gateway
4891          * device. The customer gateway is the appliance at your end of the VPN connection.
4892          * (The device on the Amazon Web Services side of the VPN connection is the virtual
4893          * private gateway.) You must provide the internet-routable IP address of the
4894          * customer gateway's external interface. The IP address must be static and can be
4895          * behind a device performing network address translation (NAT).</p> <p>For devices
4896          * that use Border Gateway Protocol (BGP), you can also provide the device's BGP
4897          * Autonomous System Number (ASN). You can use an existing ASN assigned to your
4898          * network. If you don't have an ASN already, you can use a private ASN (in the
4899          * 64512 - 65534 range).</p>  <p>Amazon EC2 supports all 4-byte ASN numbers
4900          * in the range of 1 - 2147483647, with the exception of the following:</p> <ul>
4901          * <li> <p>7224 - reserved in the <code>us-east-1</code> Region</p> </li> <li>
4902          * <p>9059 - reserved in the <code>eu-west-1</code> Region</p> </li> <li> <p>17943
4903          * - reserved in the <code>ap-southeast-1</code> Region</p> </li> <li> <p>10124 -
4904          * reserved in the <code>ap-northeast-1</code> Region</p> </li> </ul>
4905          * <p>For more information, see <a
4906          * href="https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html">Amazon Web
4907          * Services Site-to-Site VPN</a> in the <i>Amazon Web Services Site-to-Site VPN
4908          * User Guide</i>.</p>  <p>To create more than one customer gateway with
4909          * the same VPN type, IP address, and BGP ASN, specify a unique device name for
4910          * each customer gateway. Identical requests return information about the existing
4911          * customer gateway and do not create new customer gateways.</p>
4912          * <p><h3>See Also:</h3>   <a
4913          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateCustomerGateway">AWS
4914          * API Reference</a></p>
4915          *
4916          * Queues the request into a thread executor and triggers associated callback when operation has finished.
4917          */
4918         virtual void CreateCustomerGatewayAsync(const Model::CreateCustomerGatewayRequest& request, const CreateCustomerGatewayResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
4919 
4920         /**
4921          * <p>Creates a default subnet with a size <code>/20</code> IPv4 CIDR block in the
4922          * specified Availability Zone in your default VPC. You can have only one default
4923          * subnet per Availability Zone. For more information, see <a
4924          * href="https://docs.aws.amazon.com/vpc/latest/userguide/default-vpc.html#create-default-subnet">Creating
4925          * a default subnet</a> in the <i>Amazon Virtual Private Cloud User
4926          * Guide</i>.</p><p><h3>See Also:</h3>   <a
4927          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateDefaultSubnet">AWS
4928          * API Reference</a></p>
4929          */
4930         virtual Model::CreateDefaultSubnetOutcome CreateDefaultSubnet(const Model::CreateDefaultSubnetRequest& request) const;
4931 
4932         /**
4933          * <p>Creates a default subnet with a size <code>/20</code> IPv4 CIDR block in the
4934          * specified Availability Zone in your default VPC. You can have only one default
4935          * subnet per Availability Zone. For more information, see <a
4936          * href="https://docs.aws.amazon.com/vpc/latest/userguide/default-vpc.html#create-default-subnet">Creating
4937          * a default subnet</a> in the <i>Amazon Virtual Private Cloud User
4938          * Guide</i>.</p><p><h3>See Also:</h3>   <a
4939          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateDefaultSubnet">AWS
4940          * API Reference</a></p>
4941          *
4942          * returns a future to the operation so that it can be executed in parallel to other requests.
4943          */
4944         virtual Model::CreateDefaultSubnetOutcomeCallable CreateDefaultSubnetCallable(const Model::CreateDefaultSubnetRequest& request) const;
4945 
4946         /**
4947          * <p>Creates a default subnet with a size <code>/20</code> IPv4 CIDR block in the
4948          * specified Availability Zone in your default VPC. You can have only one default
4949          * subnet per Availability Zone. For more information, see <a
4950          * href="https://docs.aws.amazon.com/vpc/latest/userguide/default-vpc.html#create-default-subnet">Creating
4951          * a default subnet</a> in the <i>Amazon Virtual Private Cloud User
4952          * Guide</i>.</p><p><h3>See Also:</h3>   <a
4953          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateDefaultSubnet">AWS
4954          * API Reference</a></p>
4955          *
4956          * Queues the request into a thread executor and triggers associated callback when operation has finished.
4957          */
4958         virtual void CreateDefaultSubnetAsync(const Model::CreateDefaultSubnetRequest& request, const CreateDefaultSubnetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
4959 
4960         /**
4961          * <p>Creates a default VPC with a size <code>/16</code> IPv4 CIDR block and a
4962          * default subnet in each Availability Zone. For more information about the
4963          * components of a default VPC, see <a
4964          * href="https://docs.aws.amazon.com/vpc/latest/userguide/default-vpc.html">Default
4965          * VPC and default subnets</a> in the <i>Amazon Virtual Private Cloud User
4966          * Guide</i>. You cannot specify the components of the default VPC yourself.</p>
4967          * <p>If you deleted your previous default VPC, you can create a default VPC. You
4968          * cannot have more than one default VPC per Region.</p> <p>If your account
4969          * supports EC2-Classic, you cannot use this action to create a default VPC in a
4970          * Region that supports EC2-Classic. If you want a default VPC in a Region that
4971          * supports EC2-Classic, see "I really want a default VPC for my existing EC2
4972          * account. Is that possible?" in the <a
4973          * href="http://aws.amazon.com/vpc/faqs/#Default_VPCs">Default VPCs
4974          * FAQ</a>.</p><p><h3>See Also:</h3>   <a
4975          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateDefaultVpc">AWS
4976          * API Reference</a></p>
4977          */
4978         virtual Model::CreateDefaultVpcOutcome CreateDefaultVpc(const Model::CreateDefaultVpcRequest& request) const;
4979 
4980         /**
4981          * <p>Creates a default VPC with a size <code>/16</code> IPv4 CIDR block and a
4982          * default subnet in each Availability Zone. For more information about the
4983          * components of a default VPC, see <a
4984          * href="https://docs.aws.amazon.com/vpc/latest/userguide/default-vpc.html">Default
4985          * VPC and default subnets</a> in the <i>Amazon Virtual Private Cloud User
4986          * Guide</i>. You cannot specify the components of the default VPC yourself.</p>
4987          * <p>If you deleted your previous default VPC, you can create a default VPC. You
4988          * cannot have more than one default VPC per Region.</p> <p>If your account
4989          * supports EC2-Classic, you cannot use this action to create a default VPC in a
4990          * Region that supports EC2-Classic. If you want a default VPC in a Region that
4991          * supports EC2-Classic, see "I really want a default VPC for my existing EC2
4992          * account. Is that possible?" in the <a
4993          * href="http://aws.amazon.com/vpc/faqs/#Default_VPCs">Default VPCs
4994          * FAQ</a>.</p><p><h3>See Also:</h3>   <a
4995          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateDefaultVpc">AWS
4996          * API Reference</a></p>
4997          *
4998          * returns a future to the operation so that it can be executed in parallel to other requests.
4999          */
5000         virtual Model::CreateDefaultVpcOutcomeCallable CreateDefaultVpcCallable(const Model::CreateDefaultVpcRequest& request) const;
5001 
5002         /**
5003          * <p>Creates a default VPC with a size <code>/16</code> IPv4 CIDR block and a
5004          * default subnet in each Availability Zone. For more information about the
5005          * components of a default VPC, see <a
5006          * href="https://docs.aws.amazon.com/vpc/latest/userguide/default-vpc.html">Default
5007          * VPC and default subnets</a> in the <i>Amazon Virtual Private Cloud User
5008          * Guide</i>. You cannot specify the components of the default VPC yourself.</p>
5009          * <p>If you deleted your previous default VPC, you can create a default VPC. You
5010          * cannot have more than one default VPC per Region.</p> <p>If your account
5011          * supports EC2-Classic, you cannot use this action to create a default VPC in a
5012          * Region that supports EC2-Classic. If you want a default VPC in a Region that
5013          * supports EC2-Classic, see "I really want a default VPC for my existing EC2
5014          * account. Is that possible?" in the <a
5015          * href="http://aws.amazon.com/vpc/faqs/#Default_VPCs">Default VPCs
5016          * FAQ</a>.</p><p><h3>See Also:</h3>   <a
5017          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateDefaultVpc">AWS
5018          * API Reference</a></p>
5019          *
5020          * Queues the request into a thread executor and triggers associated callback when operation has finished.
5021          */
5022         virtual void CreateDefaultVpcAsync(const Model::CreateDefaultVpcRequest& request, const CreateDefaultVpcResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
5023 
5024         /**
5025          * <p>Creates a set of DHCP options for your VPC. After creating the set, you must
5026          * associate it with the VPC, causing all existing and new instances that you
5027          * launch in the VPC to use this set of DHCP options. The following are the
5028          * individual DHCP options you can specify. For more information about the options,
5029          * see <a href="http://www.ietf.org/rfc/rfc2132.txt">RFC 2132</a>.</p> <ul> <li>
5030          * <p> <code>domain-name-servers</code> - The IP addresses of up to four domain
5031          * name servers, or AmazonProvidedDNS. The default DHCP option set specifies
5032          * AmazonProvidedDNS. If specifying more than one domain name server, specify the
5033          * IP addresses in a single parameter, separated by commas. To have your instance
5034          * receive a custom DNS hostname as specified in <code>domain-name</code>, you must
5035          * set <code>domain-name-servers</code> to a custom DNS server.</p> </li> <li> <p>
5036          * <code>domain-name</code> - If you're using AmazonProvidedDNS in
5037          * <code>us-east-1</code>, specify <code>ec2.internal</code>. If you're using
5038          * AmazonProvidedDNS in another Region, specify
5039          * <code>region.compute.internal</code> (for example,
5040          * <code>ap-northeast-1.compute.internal</code>). Otherwise, specify a domain name
5041          * (for example, <code>ExampleCompany.com</code>). This value is used to complete
5042          * unqualified DNS hostnames. <b>Important</b>: Some Linux operating systems accept
5043          * multiple domain names separated by spaces. However, Windows and other Linux
5044          * operating systems treat the value as a single domain, which results in
5045          * unexpected behavior. If your DHCP options set is associated with a VPC that has
5046          * instances with multiple operating systems, specify only one domain name.</p>
5047          * </li> <li> <p> <code>ntp-servers</code> - The IP addresses of up to four Network
5048          * Time Protocol (NTP) servers.</p> </li> <li> <p>
5049          * <code>netbios-name-servers</code> - The IP addresses of up to four NetBIOS name
5050          * servers.</p> </li> <li> <p> <code>netbios-node-type</code> - The NetBIOS node
5051          * type (1, 2, 4, or 8). We recommend that you specify 2 (broadcast and multicast
5052          * are not currently supported). For more information about these node types, see
5053          * <a href="http://www.ietf.org/rfc/rfc2132.txt">RFC 2132</a>.</p> </li> </ul>
5054          * <p>Your VPC automatically starts out with a set of DHCP options that includes
5055          * only a DNS server that we provide (AmazonProvidedDNS). If you create a set of
5056          * options, and if your VPC has an internet gateway, make sure to set the
5057          * <code>domain-name-servers</code> option either to <code>AmazonProvidedDNS</code>
5058          * or to a domain name server of your choice. For more information, see <a
5059          * href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_DHCP_Options.html">DHCP
5060          * options sets</a> in the <i>Amazon Virtual Private Cloud User
5061          * Guide</i>.</p><p><h3>See Also:</h3>   <a
5062          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateDhcpOptions">AWS
5063          * API Reference</a></p>
5064          */
5065         virtual Model::CreateDhcpOptionsOutcome CreateDhcpOptions(const Model::CreateDhcpOptionsRequest& request) const;
5066 
5067         /**
5068          * <p>Creates a set of DHCP options for your VPC. After creating the set, you must
5069          * associate it with the VPC, causing all existing and new instances that you
5070          * launch in the VPC to use this set of DHCP options. The following are the
5071          * individual DHCP options you can specify. For more information about the options,
5072          * see <a href="http://www.ietf.org/rfc/rfc2132.txt">RFC 2132</a>.</p> <ul> <li>
5073          * <p> <code>domain-name-servers</code> - The IP addresses of up to four domain
5074          * name servers, or AmazonProvidedDNS. The default DHCP option set specifies
5075          * AmazonProvidedDNS. If specifying more than one domain name server, specify the
5076          * IP addresses in a single parameter, separated by commas. To have your instance
5077          * receive a custom DNS hostname as specified in <code>domain-name</code>, you must
5078          * set <code>domain-name-servers</code> to a custom DNS server.</p> </li> <li> <p>
5079          * <code>domain-name</code> - If you're using AmazonProvidedDNS in
5080          * <code>us-east-1</code>, specify <code>ec2.internal</code>. If you're using
5081          * AmazonProvidedDNS in another Region, specify
5082          * <code>region.compute.internal</code> (for example,
5083          * <code>ap-northeast-1.compute.internal</code>). Otherwise, specify a domain name
5084          * (for example, <code>ExampleCompany.com</code>). This value is used to complete
5085          * unqualified DNS hostnames. <b>Important</b>: Some Linux operating systems accept
5086          * multiple domain names separated by spaces. However, Windows and other Linux
5087          * operating systems treat the value as a single domain, which results in
5088          * unexpected behavior. If your DHCP options set is associated with a VPC that has
5089          * instances with multiple operating systems, specify only one domain name.</p>
5090          * </li> <li> <p> <code>ntp-servers</code> - The IP addresses of up to four Network
5091          * Time Protocol (NTP) servers.</p> </li> <li> <p>
5092          * <code>netbios-name-servers</code> - The IP addresses of up to four NetBIOS name
5093          * servers.</p> </li> <li> <p> <code>netbios-node-type</code> - The NetBIOS node
5094          * type (1, 2, 4, or 8). We recommend that you specify 2 (broadcast and multicast
5095          * are not currently supported). For more information about these node types, see
5096          * <a href="http://www.ietf.org/rfc/rfc2132.txt">RFC 2132</a>.</p> </li> </ul>
5097          * <p>Your VPC automatically starts out with a set of DHCP options that includes
5098          * only a DNS server that we provide (AmazonProvidedDNS). If you create a set of
5099          * options, and if your VPC has an internet gateway, make sure to set the
5100          * <code>domain-name-servers</code> option either to <code>AmazonProvidedDNS</code>
5101          * or to a domain name server of your choice. For more information, see <a
5102          * href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_DHCP_Options.html">DHCP
5103          * options sets</a> in the <i>Amazon Virtual Private Cloud User
5104          * Guide</i>.</p><p><h3>See Also:</h3>   <a
5105          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateDhcpOptions">AWS
5106          * API Reference</a></p>
5107          *
5108          * returns a future to the operation so that it can be executed in parallel to other requests.
5109          */
5110         virtual Model::CreateDhcpOptionsOutcomeCallable CreateDhcpOptionsCallable(const Model::CreateDhcpOptionsRequest& request) const;
5111 
5112         /**
5113          * <p>Creates a set of DHCP options for your VPC. After creating the set, you must
5114          * associate it with the VPC, causing all existing and new instances that you
5115          * launch in the VPC to use this set of DHCP options. The following are the
5116          * individual DHCP options you can specify. For more information about the options,
5117          * see <a href="http://www.ietf.org/rfc/rfc2132.txt">RFC 2132</a>.</p> <ul> <li>
5118          * <p> <code>domain-name-servers</code> - The IP addresses of up to four domain
5119          * name servers, or AmazonProvidedDNS. The default DHCP option set specifies
5120          * AmazonProvidedDNS. If specifying more than one domain name server, specify the
5121          * IP addresses in a single parameter, separated by commas. To have your instance
5122          * receive a custom DNS hostname as specified in <code>domain-name</code>, you must
5123          * set <code>domain-name-servers</code> to a custom DNS server.</p> </li> <li> <p>
5124          * <code>domain-name</code> - If you're using AmazonProvidedDNS in
5125          * <code>us-east-1</code>, specify <code>ec2.internal</code>. If you're using
5126          * AmazonProvidedDNS in another Region, specify
5127          * <code>region.compute.internal</code> (for example,
5128          * <code>ap-northeast-1.compute.internal</code>). Otherwise, specify a domain name
5129          * (for example, <code>ExampleCompany.com</code>). This value is used to complete
5130          * unqualified DNS hostnames. <b>Important</b>: Some Linux operating systems accept
5131          * multiple domain names separated by spaces. However, Windows and other Linux
5132          * operating systems treat the value as a single domain, which results in
5133          * unexpected behavior. If your DHCP options set is associated with a VPC that has
5134          * instances with multiple operating systems, specify only one domain name.</p>
5135          * </li> <li> <p> <code>ntp-servers</code> - The IP addresses of up to four Network
5136          * Time Protocol (NTP) servers.</p> </li> <li> <p>
5137          * <code>netbios-name-servers</code> - The IP addresses of up to four NetBIOS name
5138          * servers.</p> </li> <li> <p> <code>netbios-node-type</code> - The NetBIOS node
5139          * type (1, 2, 4, or 8). We recommend that you specify 2 (broadcast and multicast
5140          * are not currently supported). For more information about these node types, see
5141          * <a href="http://www.ietf.org/rfc/rfc2132.txt">RFC 2132</a>.</p> </li> </ul>
5142          * <p>Your VPC automatically starts out with a set of DHCP options that includes
5143          * only a DNS server that we provide (AmazonProvidedDNS). If you create a set of
5144          * options, and if your VPC has an internet gateway, make sure to set the
5145          * <code>domain-name-servers</code> option either to <code>AmazonProvidedDNS</code>
5146          * or to a domain name server of your choice. For more information, see <a
5147          * href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_DHCP_Options.html">DHCP
5148          * options sets</a> in the <i>Amazon Virtual Private Cloud User
5149          * Guide</i>.</p><p><h3>See Also:</h3>   <a
5150          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateDhcpOptions">AWS
5151          * API Reference</a></p>
5152          *
5153          * Queues the request into a thread executor and triggers associated callback when operation has finished.
5154          */
5155         virtual void CreateDhcpOptionsAsync(const Model::CreateDhcpOptionsRequest& request, const CreateDhcpOptionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
5156 
5157         /**
5158          * <p>[IPv6 only] Creates an egress-only internet gateway for your VPC. An
5159          * egress-only internet gateway is used to enable outbound communication over IPv6
5160          * from instances in your VPC to the internet, and prevents hosts outside of your
5161          * VPC from initiating an IPv6 connection with your instance.</p><p><h3>See
5162          * Also:</h3>   <a
5163          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateEgressOnlyInternetGateway">AWS
5164          * API Reference</a></p>
5165          */
5166         virtual Model::CreateEgressOnlyInternetGatewayOutcome CreateEgressOnlyInternetGateway(const Model::CreateEgressOnlyInternetGatewayRequest& request) const;
5167 
5168         /**
5169          * <p>[IPv6 only] Creates an egress-only internet gateway for your VPC. An
5170          * egress-only internet gateway is used to enable outbound communication over IPv6
5171          * from instances in your VPC to the internet, and prevents hosts outside of your
5172          * VPC from initiating an IPv6 connection with your instance.</p><p><h3>See
5173          * Also:</h3>   <a
5174          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateEgressOnlyInternetGateway">AWS
5175          * API Reference</a></p>
5176          *
5177          * returns a future to the operation so that it can be executed in parallel to other requests.
5178          */
5179         virtual Model::CreateEgressOnlyInternetGatewayOutcomeCallable CreateEgressOnlyInternetGatewayCallable(const Model::CreateEgressOnlyInternetGatewayRequest& request) const;
5180 
5181         /**
5182          * <p>[IPv6 only] Creates an egress-only internet gateway for your VPC. An
5183          * egress-only internet gateway is used to enable outbound communication over IPv6
5184          * from instances in your VPC to the internet, and prevents hosts outside of your
5185          * VPC from initiating an IPv6 connection with your instance.</p><p><h3>See
5186          * Also:</h3>   <a
5187          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateEgressOnlyInternetGateway">AWS
5188          * API Reference</a></p>
5189          *
5190          * Queues the request into a thread executor and triggers associated callback when operation has finished.
5191          */
5192         virtual void CreateEgressOnlyInternetGatewayAsync(const Model::CreateEgressOnlyInternetGatewayRequest& request, const CreateEgressOnlyInternetGatewayResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
5193 
5194         /**
5195          * <p>Launches an EC2 Fleet.</p> <p>You can create a single EC2 Fleet that includes
5196          * multiple launch specifications that vary by instance type, AMI, Availability
5197          * Zone, or subnet.</p> <p>For more information, see <a
5198          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet.html">Launching
5199          * an EC2 Fleet</a> in the <i>Amazon EC2 User Guide</i>.</p><p><h3>See Also:</h3>
5200          * <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateFleet">AWS
5201          * API Reference</a></p>
5202          */
5203         virtual Model::CreateFleetOutcome CreateFleet(const Model::CreateFleetRequest& request) const;
5204 
5205         /**
5206          * <p>Launches an EC2 Fleet.</p> <p>You can create a single EC2 Fleet that includes
5207          * multiple launch specifications that vary by instance type, AMI, Availability
5208          * Zone, or subnet.</p> <p>For more information, see <a
5209          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet.html">Launching
5210          * an EC2 Fleet</a> in the <i>Amazon EC2 User Guide</i>.</p><p><h3>See Also:</h3>
5211          * <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateFleet">AWS
5212          * API Reference</a></p>
5213          *
5214          * returns a future to the operation so that it can be executed in parallel to other requests.
5215          */
5216         virtual Model::CreateFleetOutcomeCallable CreateFleetCallable(const Model::CreateFleetRequest& request) const;
5217 
5218         /**
5219          * <p>Launches an EC2 Fleet.</p> <p>You can create a single EC2 Fleet that includes
5220          * multiple launch specifications that vary by instance type, AMI, Availability
5221          * Zone, or subnet.</p> <p>For more information, see <a
5222          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet.html">Launching
5223          * an EC2 Fleet</a> in the <i>Amazon EC2 User Guide</i>.</p><p><h3>See Also:</h3>
5224          * <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateFleet">AWS
5225          * API Reference</a></p>
5226          *
5227          * Queues the request into a thread executor and triggers associated callback when operation has finished.
5228          */
5229         virtual void CreateFleetAsync(const Model::CreateFleetRequest& request, const CreateFleetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
5230 
5231         /**
5232          * <p>Creates one or more flow logs to capture information about IP traffic for a
5233          * specific network interface, subnet, or VPC. </p> <p>Flow log data for a
5234          * monitored network interface is recorded as flow log records, which are log
5235          * events consisting of fields that describe the traffic flow. For more
5236          * information, see <a
5237          * href="https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html#flow-log-records">Flow
5238          * log records</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.</p>
5239          * <p>When publishing to CloudWatch Logs, flow log records are published to a log
5240          * group, and each network interface has a unique log stream in the log group. When
5241          * publishing to Amazon S3, flow log records for all of the monitored network
5242          * interfaces are published to a single log file object that is stored in the
5243          * specified bucket.</p> <p>For more information, see <a
5244          * href="https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html">VPC Flow
5245          * Logs</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.</p><p><h3>See
5246          * Also:</h3>   <a
5247          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateFlowLogs">AWS
5248          * API Reference</a></p>
5249          */
5250         virtual Model::CreateFlowLogsOutcome CreateFlowLogs(const Model::CreateFlowLogsRequest& request) const;
5251 
5252         /**
5253          * <p>Creates one or more flow logs to capture information about IP traffic for a
5254          * specific network interface, subnet, or VPC. </p> <p>Flow log data for a
5255          * monitored network interface is recorded as flow log records, which are log
5256          * events consisting of fields that describe the traffic flow. For more
5257          * information, see <a
5258          * href="https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html#flow-log-records">Flow
5259          * log records</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.</p>
5260          * <p>When publishing to CloudWatch Logs, flow log records are published to a log
5261          * group, and each network interface has a unique log stream in the log group. When
5262          * publishing to Amazon S3, flow log records for all of the monitored network
5263          * interfaces are published to a single log file object that is stored in the
5264          * specified bucket.</p> <p>For more information, see <a
5265          * href="https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html">VPC Flow
5266          * Logs</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.</p><p><h3>See
5267          * Also:</h3>   <a
5268          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateFlowLogs">AWS
5269          * API Reference</a></p>
5270          *
5271          * returns a future to the operation so that it can be executed in parallel to other requests.
5272          */
5273         virtual Model::CreateFlowLogsOutcomeCallable CreateFlowLogsCallable(const Model::CreateFlowLogsRequest& request) const;
5274 
5275         /**
5276          * <p>Creates one or more flow logs to capture information about IP traffic for a
5277          * specific network interface, subnet, or VPC. </p> <p>Flow log data for a
5278          * monitored network interface is recorded as flow log records, which are log
5279          * events consisting of fields that describe the traffic flow. For more
5280          * information, see <a
5281          * href="https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html#flow-log-records">Flow
5282          * log records</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.</p>
5283          * <p>When publishing to CloudWatch Logs, flow log records are published to a log
5284          * group, and each network interface has a unique log stream in the log group. When
5285          * publishing to Amazon S3, flow log records for all of the monitored network
5286          * interfaces are published to a single log file object that is stored in the
5287          * specified bucket.</p> <p>For more information, see <a
5288          * href="https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html">VPC Flow
5289          * Logs</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.</p><p><h3>See
5290          * Also:</h3>   <a
5291          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateFlowLogs">AWS
5292          * API Reference</a></p>
5293          *
5294          * Queues the request into a thread executor and triggers associated callback when operation has finished.
5295          */
5296         virtual void CreateFlowLogsAsync(const Model::CreateFlowLogsRequest& request, const CreateFlowLogsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
5297 
5298         /**
5299          * <p>Creates an Amazon FPGA Image (AFI) from the specified design checkpoint
5300          * (DCP).</p> <p>The create operation is asynchronous. To verify that the AFI is
5301          * ready for use, check the output logs.</p> <p>An AFI contains the FPGA bitstream
5302          * that is ready to download to an FPGA. You can securely deploy an AFI on multiple
5303          * FPGA-accelerated instances. For more information, see the <a
5304          * href="https://github.com/aws/aws-fpga/">Amazon Web Services FPGA Hardware
5305          * Development Kit</a>.</p><p><h3>See Also:</h3>   <a
5306          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateFpgaImage">AWS
5307          * API Reference</a></p>
5308          */
5309         virtual Model::CreateFpgaImageOutcome CreateFpgaImage(const Model::CreateFpgaImageRequest& request) const;
5310 
5311         /**
5312          * <p>Creates an Amazon FPGA Image (AFI) from the specified design checkpoint
5313          * (DCP).</p> <p>The create operation is asynchronous. To verify that the AFI is
5314          * ready for use, check the output logs.</p> <p>An AFI contains the FPGA bitstream
5315          * that is ready to download to an FPGA. You can securely deploy an AFI on multiple
5316          * FPGA-accelerated instances. For more information, see the <a
5317          * href="https://github.com/aws/aws-fpga/">Amazon Web Services FPGA Hardware
5318          * Development Kit</a>.</p><p><h3>See Also:</h3>   <a
5319          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateFpgaImage">AWS
5320          * API Reference</a></p>
5321          *
5322          * returns a future to the operation so that it can be executed in parallel to other requests.
5323          */
5324         virtual Model::CreateFpgaImageOutcomeCallable CreateFpgaImageCallable(const Model::CreateFpgaImageRequest& request) const;
5325 
5326         /**
5327          * <p>Creates an Amazon FPGA Image (AFI) from the specified design checkpoint
5328          * (DCP).</p> <p>The create operation is asynchronous. To verify that the AFI is
5329          * ready for use, check the output logs.</p> <p>An AFI contains the FPGA bitstream
5330          * that is ready to download to an FPGA. You can securely deploy an AFI on multiple
5331          * FPGA-accelerated instances. For more information, see the <a
5332          * href="https://github.com/aws/aws-fpga/">Amazon Web Services FPGA Hardware
5333          * Development Kit</a>.</p><p><h3>See Also:</h3>   <a
5334          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateFpgaImage">AWS
5335          * API Reference</a></p>
5336          *
5337          * Queues the request into a thread executor and triggers associated callback when operation has finished.
5338          */
5339         virtual void CreateFpgaImageAsync(const Model::CreateFpgaImageRequest& request, const CreateFpgaImageResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
5340 
5341         /**
5342          * <p>Creates an Amazon EBS-backed AMI from an Amazon EBS-backed instance that is
5343          * either running or stopped.</p> <p>If you customized your instance with instance
5344          * store volumes or Amazon EBS volumes in addition to the root device volume, the
5345          * new AMI contains block device mapping information for those volumes. When you
5346          * launch an instance from this new AMI, the instance automatically launches with
5347          * those additional volumes.</p> <p>For more information, see <a
5348          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-ebs.html">Creating
5349          * Amazon EBS-Backed Linux AMIs</a> in the <i>Amazon Elastic Compute Cloud User
5350          * Guide</i>.</p><p><h3>See Also:</h3>   <a
5351          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateImage">AWS API
5352          * Reference</a></p>
5353          */
5354         virtual Model::CreateImageOutcome CreateImage(const Model::CreateImageRequest& request) const;
5355 
5356         /**
5357          * <p>Creates an Amazon EBS-backed AMI from an Amazon EBS-backed instance that is
5358          * either running or stopped.</p> <p>If you customized your instance with instance
5359          * store volumes or Amazon EBS volumes in addition to the root device volume, the
5360          * new AMI contains block device mapping information for those volumes. When you
5361          * launch an instance from this new AMI, the instance automatically launches with
5362          * those additional volumes.</p> <p>For more information, see <a
5363          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-ebs.html">Creating
5364          * Amazon EBS-Backed Linux AMIs</a> in the <i>Amazon Elastic Compute Cloud User
5365          * Guide</i>.</p><p><h3>See Also:</h3>   <a
5366          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateImage">AWS API
5367          * Reference</a></p>
5368          *
5369          * returns a future to the operation so that it can be executed in parallel to other requests.
5370          */
5371         virtual Model::CreateImageOutcomeCallable CreateImageCallable(const Model::CreateImageRequest& request) const;
5372 
5373         /**
5374          * <p>Creates an Amazon EBS-backed AMI from an Amazon EBS-backed instance that is
5375          * either running or stopped.</p> <p>If you customized your instance with instance
5376          * store volumes or Amazon EBS volumes in addition to the root device volume, the
5377          * new AMI contains block device mapping information for those volumes. When you
5378          * launch an instance from this new AMI, the instance automatically launches with
5379          * those additional volumes.</p> <p>For more information, see <a
5380          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-ebs.html">Creating
5381          * Amazon EBS-Backed Linux AMIs</a> in the <i>Amazon Elastic Compute Cloud User
5382          * Guide</i>.</p><p><h3>See Also:</h3>   <a
5383          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateImage">AWS API
5384          * Reference</a></p>
5385          *
5386          * Queues the request into a thread executor and triggers associated callback when operation has finished.
5387          */
5388         virtual void CreateImageAsync(const Model::CreateImageRequest& request, const CreateImageResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
5389 
5390         /**
5391          * <p>Creates an event window in which scheduled events for the associated Amazon
5392          * EC2 instances can run.</p> <p>You can define either a set of time ranges or a
5393          * cron expression when creating the event window, but not both. All event window
5394          * times are in UTC.</p> <p>You can create up to 200 event windows per Amazon Web
5395          * Services Region.</p> <p>When you create the event window, targets (instance IDs,
5396          * Dedicated Host IDs, or tags) are not yet associated with it. To ensure that the
5397          * event window can be used, you must associate one or more targets with it by
5398          * using the <a>AssociateInstanceEventWindow</a> API.</p>  <p>Event
5399          * windows are applicable only for scheduled events that stop, reboot, or terminate
5400          * instances.</p> <p>Event windows are <i>not</i> applicable for:</p> <ul> <li>
5401          * <p>Expedited scheduled events and network maintenance events. </p> </li> <li>
5402          * <p>Unscheduled maintenance such as AutoRecovery and unplanned reboots.</p> </li>
5403          * </ul>  <p>For more information, see <a
5404          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/event-windows.html">Define
5405          * event windows for scheduled events</a> in the <i>Amazon EC2 User
5406          * Guide</i>.</p><p><h3>See Also:</h3>   <a
5407          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateInstanceEventWindow">AWS
5408          * API Reference</a></p>
5409          */
5410         virtual Model::CreateInstanceEventWindowOutcome CreateInstanceEventWindow(const Model::CreateInstanceEventWindowRequest& request) const;
5411 
5412         /**
5413          * <p>Creates an event window in which scheduled events for the associated Amazon
5414          * EC2 instances can run.</p> <p>You can define either a set of time ranges or a
5415          * cron expression when creating the event window, but not both. All event window
5416          * times are in UTC.</p> <p>You can create up to 200 event windows per Amazon Web
5417          * Services Region.</p> <p>When you create the event window, targets (instance IDs,
5418          * Dedicated Host IDs, or tags) are not yet associated with it. To ensure that the
5419          * event window can be used, you must associate one or more targets with it by
5420          * using the <a>AssociateInstanceEventWindow</a> API.</p>  <p>Event
5421          * windows are applicable only for scheduled events that stop, reboot, or terminate
5422          * instances.</p> <p>Event windows are <i>not</i> applicable for:</p> <ul> <li>
5423          * <p>Expedited scheduled events and network maintenance events. </p> </li> <li>
5424          * <p>Unscheduled maintenance such as AutoRecovery and unplanned reboots.</p> </li>
5425          * </ul>  <p>For more information, see <a
5426          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/event-windows.html">Define
5427          * event windows for scheduled events</a> in the <i>Amazon EC2 User
5428          * Guide</i>.</p><p><h3>See Also:</h3>   <a
5429          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateInstanceEventWindow">AWS
5430          * API Reference</a></p>
5431          *
5432          * returns a future to the operation so that it can be executed in parallel to other requests.
5433          */
5434         virtual Model::CreateInstanceEventWindowOutcomeCallable CreateInstanceEventWindowCallable(const Model::CreateInstanceEventWindowRequest& request) const;
5435 
5436         /**
5437          * <p>Creates an event window in which scheduled events for the associated Amazon
5438          * EC2 instances can run.</p> <p>You can define either a set of time ranges or a
5439          * cron expression when creating the event window, but not both. All event window
5440          * times are in UTC.</p> <p>You can create up to 200 event windows per Amazon Web
5441          * Services Region.</p> <p>When you create the event window, targets (instance IDs,
5442          * Dedicated Host IDs, or tags) are not yet associated with it. To ensure that the
5443          * event window can be used, you must associate one or more targets with it by
5444          * using the <a>AssociateInstanceEventWindow</a> API.</p>  <p>Event
5445          * windows are applicable only for scheduled events that stop, reboot, or terminate
5446          * instances.</p> <p>Event windows are <i>not</i> applicable for:</p> <ul> <li>
5447          * <p>Expedited scheduled events and network maintenance events. </p> </li> <li>
5448          * <p>Unscheduled maintenance such as AutoRecovery and unplanned reboots.</p> </li>
5449          * </ul>  <p>For more information, see <a
5450          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/event-windows.html">Define
5451          * event windows for scheduled events</a> in the <i>Amazon EC2 User
5452          * Guide</i>.</p><p><h3>See Also:</h3>   <a
5453          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateInstanceEventWindow">AWS
5454          * API Reference</a></p>
5455          *
5456          * Queues the request into a thread executor and triggers associated callback when operation has finished.
5457          */
5458         virtual void CreateInstanceEventWindowAsync(const Model::CreateInstanceEventWindowRequest& request, const CreateInstanceEventWindowResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
5459 
5460         /**
5461          * <p>Exports a running or stopped instance to an Amazon S3 bucket.</p> <p>For
5462          * information about the supported operating systems, image formats, and known
5463          * limitations for the types of instances you can export, see <a
5464          * href="https://docs.aws.amazon.com/vm-import/latest/userguide/vmexport.html">Exporting
5465          * an instance as a VM Using VM Import/Export</a> in the <i>VM Import/Export User
5466          * Guide</i>.</p><p><h3>See Also:</h3>   <a
5467          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateInstanceExportTask">AWS
5468          * API Reference</a></p>
5469          */
5470         virtual Model::CreateInstanceExportTaskOutcome CreateInstanceExportTask(const Model::CreateInstanceExportTaskRequest& request) const;
5471 
5472         /**
5473          * <p>Exports a running or stopped instance to an Amazon S3 bucket.</p> <p>For
5474          * information about the supported operating systems, image formats, and known
5475          * limitations for the types of instances you can export, see <a
5476          * href="https://docs.aws.amazon.com/vm-import/latest/userguide/vmexport.html">Exporting
5477          * an instance as a VM Using VM Import/Export</a> in the <i>VM Import/Export User
5478          * Guide</i>.</p><p><h3>See Also:</h3>   <a
5479          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateInstanceExportTask">AWS
5480          * API Reference</a></p>
5481          *
5482          * returns a future to the operation so that it can be executed in parallel to other requests.
5483          */
5484         virtual Model::CreateInstanceExportTaskOutcomeCallable CreateInstanceExportTaskCallable(const Model::CreateInstanceExportTaskRequest& request) const;
5485 
5486         /**
5487          * <p>Exports a running or stopped instance to an Amazon S3 bucket.</p> <p>For
5488          * information about the supported operating systems, image formats, and known
5489          * limitations for the types of instances you can export, see <a
5490          * href="https://docs.aws.amazon.com/vm-import/latest/userguide/vmexport.html">Exporting
5491          * an instance as a VM Using VM Import/Export</a> in the <i>VM Import/Export User
5492          * Guide</i>.</p><p><h3>See Also:</h3>   <a
5493          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateInstanceExportTask">AWS
5494          * API Reference</a></p>
5495          *
5496          * Queues the request into a thread executor and triggers associated callback when operation has finished.
5497          */
5498         virtual void CreateInstanceExportTaskAsync(const Model::CreateInstanceExportTaskRequest& request, const CreateInstanceExportTaskResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
5499 
5500         /**
5501          * <p>Creates an internet gateway for use with a VPC. After creating the internet
5502          * gateway, you attach it to a VPC using <a>AttachInternetGateway</a>.</p> <p>For
5503          * more information about your VPC and internet gateway, see the <a
5504          * href="https://docs.aws.amazon.com/vpc/latest/userguide/">Amazon Virtual Private
5505          * Cloud User Guide</a>.</p><p><h3>See Also:</h3>   <a
5506          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateInternetGateway">AWS
5507          * API Reference</a></p>
5508          */
5509         virtual Model::CreateInternetGatewayOutcome CreateInternetGateway(const Model::CreateInternetGatewayRequest& request) const;
5510 
5511         /**
5512          * <p>Creates an internet gateway for use with a VPC. After creating the internet
5513          * gateway, you attach it to a VPC using <a>AttachInternetGateway</a>.</p> <p>For
5514          * more information about your VPC and internet gateway, see the <a
5515          * href="https://docs.aws.amazon.com/vpc/latest/userguide/">Amazon Virtual Private
5516          * Cloud User Guide</a>.</p><p><h3>See Also:</h3>   <a
5517          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateInternetGateway">AWS
5518          * API Reference</a></p>
5519          *
5520          * returns a future to the operation so that it can be executed in parallel to other requests.
5521          */
5522         virtual Model::CreateInternetGatewayOutcomeCallable CreateInternetGatewayCallable(const Model::CreateInternetGatewayRequest& request) const;
5523 
5524         /**
5525          * <p>Creates an internet gateway for use with a VPC. After creating the internet
5526          * gateway, you attach it to a VPC using <a>AttachInternetGateway</a>.</p> <p>For
5527          * more information about your VPC and internet gateway, see the <a
5528          * href="https://docs.aws.amazon.com/vpc/latest/userguide/">Amazon Virtual Private
5529          * Cloud User Guide</a>.</p><p><h3>See Also:</h3>   <a
5530          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateInternetGateway">AWS
5531          * API Reference</a></p>
5532          *
5533          * Queues the request into a thread executor and triggers associated callback when operation has finished.
5534          */
5535         virtual void CreateInternetGatewayAsync(const Model::CreateInternetGatewayRequest& request, const CreateInternetGatewayResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
5536 
5537         /**
5538          * <p>Creates an ED25519 or 2048-bit RSA key pair with the specified name. Amazon
5539          * EC2 stores the public key and displays the private key for you to save to a
5540          * file. The private key is returned as an unencrypted PEM encoded PKCS#1 private
5541          * key. If a key with the specified name already exists, Amazon EC2 returns an
5542          * error.</p> <p>The key pair returned to you is available only in the Amazon Web
5543          * Services Region in which you create it. If you prefer, you can create your own
5544          * key pair using a third-party tool and upload it to any Region using
5545          * <a>ImportKeyPair</a>.</p> <p>You can have up to 5,000 key pairs per Amazon Web
5546          * Services Region.</p> <p>For more information, see <a
5547          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html">Amazon
5548          * EC2 key pairs</a> in the <i>Amazon Elastic Compute Cloud User
5549          * Guide</i>.</p><p><h3>See Also:</h3>   <a
5550          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateKeyPair">AWS
5551          * API Reference</a></p>
5552          */
5553         virtual Model::CreateKeyPairOutcome CreateKeyPair(const Model::CreateKeyPairRequest& request) const;
5554 
5555         /**
5556          * <p>Creates an ED25519 or 2048-bit RSA key pair with the specified name. Amazon
5557          * EC2 stores the public key and displays the private key for you to save to a
5558          * file. The private key is returned as an unencrypted PEM encoded PKCS#1 private
5559          * key. If a key with the specified name already exists, Amazon EC2 returns an
5560          * error.</p> <p>The key pair returned to you is available only in the Amazon Web
5561          * Services Region in which you create it. If you prefer, you can create your own
5562          * key pair using a third-party tool and upload it to any Region using
5563          * <a>ImportKeyPair</a>.</p> <p>You can have up to 5,000 key pairs per Amazon Web
5564          * Services Region.</p> <p>For more information, see <a
5565          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html">Amazon
5566          * EC2 key pairs</a> in the <i>Amazon Elastic Compute Cloud User
5567          * Guide</i>.</p><p><h3>See Also:</h3>   <a
5568          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateKeyPair">AWS
5569          * API Reference</a></p>
5570          *
5571          * returns a future to the operation so that it can be executed in parallel to other requests.
5572          */
5573         virtual Model::CreateKeyPairOutcomeCallable CreateKeyPairCallable(const Model::CreateKeyPairRequest& request) const;
5574 
5575         /**
5576          * <p>Creates an ED25519 or 2048-bit RSA key pair with the specified name. Amazon
5577          * EC2 stores the public key and displays the private key for you to save to a
5578          * file. The private key is returned as an unencrypted PEM encoded PKCS#1 private
5579          * key. If a key with the specified name already exists, Amazon EC2 returns an
5580          * error.</p> <p>The key pair returned to you is available only in the Amazon Web
5581          * Services Region in which you create it. If you prefer, you can create your own
5582          * key pair using a third-party tool and upload it to any Region using
5583          * <a>ImportKeyPair</a>.</p> <p>You can have up to 5,000 key pairs per Amazon Web
5584          * Services Region.</p> <p>For more information, see <a
5585          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html">Amazon
5586          * EC2 key pairs</a> in the <i>Amazon Elastic Compute Cloud User
5587          * Guide</i>.</p><p><h3>See Also:</h3>   <a
5588          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateKeyPair">AWS
5589          * API Reference</a></p>
5590          *
5591          * Queues the request into a thread executor and triggers associated callback when operation has finished.
5592          */
5593         virtual void CreateKeyPairAsync(const Model::CreateKeyPairRequest& request, const CreateKeyPairResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
5594 
5595         /**
5596          * <p>Creates a launch template. A launch template contains the parameters to
5597          * launch an instance. When you launch an instance using <a>RunInstances</a>, you
5598          * can specify a launch template instead of providing the launch parameters in the
5599          * request. For more information, see <a
5600          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html">Launching
5601          * an instance from a launch template</a> in the <i>Amazon Elastic Compute Cloud
5602          * User Guide</i>.</p><p><h3>See Also:</h3>   <a
5603          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateLaunchTemplate">AWS
5604          * API Reference</a></p>
5605          */
5606         virtual Model::CreateLaunchTemplateOutcome CreateLaunchTemplate(const Model::CreateLaunchTemplateRequest& request) const;
5607 
5608         /**
5609          * <p>Creates a launch template. A launch template contains the parameters to
5610          * launch an instance. When you launch an instance using <a>RunInstances</a>, you
5611          * can specify a launch template instead of providing the launch parameters in the
5612          * request. For more information, see <a
5613          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html">Launching
5614          * an instance from a launch template</a> in the <i>Amazon Elastic Compute Cloud
5615          * User Guide</i>.</p><p><h3>See Also:</h3>   <a
5616          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateLaunchTemplate">AWS
5617          * API Reference</a></p>
5618          *
5619          * returns a future to the operation so that it can be executed in parallel to other requests.
5620          */
5621         virtual Model::CreateLaunchTemplateOutcomeCallable CreateLaunchTemplateCallable(const Model::CreateLaunchTemplateRequest& request) const;
5622 
5623         /**
5624          * <p>Creates a launch template. A launch template contains the parameters to
5625          * launch an instance. When you launch an instance using <a>RunInstances</a>, you
5626          * can specify a launch template instead of providing the launch parameters in the
5627          * request. For more information, see <a
5628          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html">Launching
5629          * an instance from a launch template</a> in the <i>Amazon Elastic Compute Cloud
5630          * User Guide</i>.</p><p><h3>See Also:</h3>   <a
5631          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateLaunchTemplate">AWS
5632          * API Reference</a></p>
5633          *
5634          * Queues the request into a thread executor and triggers associated callback when operation has finished.
5635          */
5636         virtual void CreateLaunchTemplateAsync(const Model::CreateLaunchTemplateRequest& request, const CreateLaunchTemplateResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
5637 
5638         /**
5639          * <p>Creates a new version for a launch template. You can specify an existing
5640          * version of launch template from which to base the new version.</p> <p>Launch
5641          * template versions are numbered in the order in which they are created. You
5642          * cannot specify, change, or replace the numbering of launch template
5643          * versions.</p> <p>For more information, see <a
5644          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html#manage-launch-template-versions">Managing
5645          * launch template versions</a>in the <i>Amazon Elastic Compute Cloud User
5646          * Guide</i>.</p><p><h3>See Also:</h3>   <a
5647          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateLaunchTemplateVersion">AWS
5648          * API Reference</a></p>
5649          */
5650         virtual Model::CreateLaunchTemplateVersionOutcome CreateLaunchTemplateVersion(const Model::CreateLaunchTemplateVersionRequest& request) const;
5651 
5652         /**
5653          * <p>Creates a new version for a launch template. You can specify an existing
5654          * version of launch template from which to base the new version.</p> <p>Launch
5655          * template versions are numbered in the order in which they are created. You
5656          * cannot specify, change, or replace the numbering of launch template
5657          * versions.</p> <p>For more information, see <a
5658          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html#manage-launch-template-versions">Managing
5659          * launch template versions</a>in the <i>Amazon Elastic Compute Cloud User
5660          * Guide</i>.</p><p><h3>See Also:</h3>   <a
5661          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateLaunchTemplateVersion">AWS
5662          * API Reference</a></p>
5663          *
5664          * returns a future to the operation so that it can be executed in parallel to other requests.
5665          */
5666         virtual Model::CreateLaunchTemplateVersionOutcomeCallable CreateLaunchTemplateVersionCallable(const Model::CreateLaunchTemplateVersionRequest& request) const;
5667 
5668         /**
5669          * <p>Creates a new version for a launch template. You can specify an existing
5670          * version of launch template from which to base the new version.</p> <p>Launch
5671          * template versions are numbered in the order in which they are created. You
5672          * cannot specify, change, or replace the numbering of launch template
5673          * versions.</p> <p>For more information, see <a
5674          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html#manage-launch-template-versions">Managing
5675          * launch template versions</a>in the <i>Amazon Elastic Compute Cloud User
5676          * Guide</i>.</p><p><h3>See Also:</h3>   <a
5677          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateLaunchTemplateVersion">AWS
5678          * API Reference</a></p>
5679          *
5680          * Queues the request into a thread executor and triggers associated callback when operation has finished.
5681          */
5682         virtual void CreateLaunchTemplateVersionAsync(const Model::CreateLaunchTemplateVersionRequest& request, const CreateLaunchTemplateVersionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
5683 
5684         /**
5685          * <p>Creates a static route for the specified local gateway route
5686          * table.</p><p><h3>See Also:</h3>   <a
5687          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateLocalGatewayRoute">AWS
5688          * API Reference</a></p>
5689          */
5690         virtual Model::CreateLocalGatewayRouteOutcome CreateLocalGatewayRoute(const Model::CreateLocalGatewayRouteRequest& request) const;
5691 
5692         /**
5693          * <p>Creates a static route for the specified local gateway route
5694          * table.</p><p><h3>See Also:</h3>   <a
5695          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateLocalGatewayRoute">AWS
5696          * API Reference</a></p>
5697          *
5698          * returns a future to the operation so that it can be executed in parallel to other requests.
5699          */
5700         virtual Model::CreateLocalGatewayRouteOutcomeCallable CreateLocalGatewayRouteCallable(const Model::CreateLocalGatewayRouteRequest& request) const;
5701 
5702         /**
5703          * <p>Creates a static route for the specified local gateway route
5704          * table.</p><p><h3>See Also:</h3>   <a
5705          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateLocalGatewayRoute">AWS
5706          * API Reference</a></p>
5707          *
5708          * Queues the request into a thread executor and triggers associated callback when operation has finished.
5709          */
5710         virtual void CreateLocalGatewayRouteAsync(const Model::CreateLocalGatewayRouteRequest& request, const CreateLocalGatewayRouteResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
5711 
5712         /**
5713          * <p>Associates the specified VPC with the specified local gateway route
5714          * table.</p><p><h3>See Also:</h3>   <a
5715          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateLocalGatewayRouteTableVpcAssociation">AWS
5716          * API Reference</a></p>
5717          */
5718         virtual Model::CreateLocalGatewayRouteTableVpcAssociationOutcome CreateLocalGatewayRouteTableVpcAssociation(const Model::CreateLocalGatewayRouteTableVpcAssociationRequest& request) const;
5719 
5720         /**
5721          * <p>Associates the specified VPC with the specified local gateway route
5722          * table.</p><p><h3>See Also:</h3>   <a
5723          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateLocalGatewayRouteTableVpcAssociation">AWS
5724          * API Reference</a></p>
5725          *
5726          * returns a future to the operation so that it can be executed in parallel to other requests.
5727          */
5728         virtual Model::CreateLocalGatewayRouteTableVpcAssociationOutcomeCallable CreateLocalGatewayRouteTableVpcAssociationCallable(const Model::CreateLocalGatewayRouteTableVpcAssociationRequest& request) const;
5729 
5730         /**
5731          * <p>Associates the specified VPC with the specified local gateway route
5732          * table.</p><p><h3>See Also:</h3>   <a
5733          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateLocalGatewayRouteTableVpcAssociation">AWS
5734          * API Reference</a></p>
5735          *
5736          * Queues the request into a thread executor and triggers associated callback when operation has finished.
5737          */
5738         virtual void CreateLocalGatewayRouteTableVpcAssociationAsync(const Model::CreateLocalGatewayRouteTableVpcAssociationRequest& request, const CreateLocalGatewayRouteTableVpcAssociationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
5739 
5740         /**
5741          * <p>Creates a managed prefix list. You can specify one or more entries for the
5742          * prefix list. Each entry consists of a CIDR block and an optional
5743          * description.</p><p><h3>See Also:</h3>   <a
5744          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateManagedPrefixList">AWS
5745          * API Reference</a></p>
5746          */
5747         virtual Model::CreateManagedPrefixListOutcome CreateManagedPrefixList(const Model::CreateManagedPrefixListRequest& request) const;
5748 
5749         /**
5750          * <p>Creates a managed prefix list. You can specify one or more entries for the
5751          * prefix list. Each entry consists of a CIDR block and an optional
5752          * description.</p><p><h3>See Also:</h3>   <a
5753          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateManagedPrefixList">AWS
5754          * API Reference</a></p>
5755          *
5756          * returns a future to the operation so that it can be executed in parallel to other requests.
5757          */
5758         virtual Model::CreateManagedPrefixListOutcomeCallable CreateManagedPrefixListCallable(const Model::CreateManagedPrefixListRequest& request) const;
5759 
5760         /**
5761          * <p>Creates a managed prefix list. You can specify one or more entries for the
5762          * prefix list. Each entry consists of a CIDR block and an optional
5763          * description.</p><p><h3>See Also:</h3>   <a
5764          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateManagedPrefixList">AWS
5765          * API Reference</a></p>
5766          *
5767          * Queues the request into a thread executor and triggers associated callback when operation has finished.
5768          */
5769         virtual void CreateManagedPrefixListAsync(const Model::CreateManagedPrefixListRequest& request, const CreateManagedPrefixListResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
5770 
5771         /**
5772          * <p>Creates a NAT gateway in the specified subnet. This action creates a network
5773          * interface in the specified subnet with a private IP address from the IP address
5774          * range of the subnet. You can create either a public NAT gateway or a private NAT
5775          * gateway.</p> <p>With a public NAT gateway, internet-bound traffic from a private
5776          * subnet can be routed to the NAT gateway, so that instances in a private subnet
5777          * can connect to the internet.</p> <p>With a private NAT gateway, private
5778          * communication is routed across VPCs and on-premises networks through a transit
5779          * gateway or virtual private gateway. Common use cases include running large
5780          * workloads behind a small pool of allowlisted IPv4 addresses, preserving private
5781          * IPv4 addresses, and communicating between overlapping networks.</p> <p>For more
5782          * information, see <a
5783          * href="https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html">NAT
5784          * gateways</a> in the <i>Amazon Virtual Private Cloud User
5785          * Guide</i>.</p><p><h3>See Also:</h3>   <a
5786          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateNatGateway">AWS
5787          * API Reference</a></p>
5788          */
5789         virtual Model::CreateNatGatewayOutcome CreateNatGateway(const Model::CreateNatGatewayRequest& request) const;
5790 
5791         /**
5792          * <p>Creates a NAT gateway in the specified subnet. This action creates a network
5793          * interface in the specified subnet with a private IP address from the IP address
5794          * range of the subnet. You can create either a public NAT gateway or a private NAT
5795          * gateway.</p> <p>With a public NAT gateway, internet-bound traffic from a private
5796          * subnet can be routed to the NAT gateway, so that instances in a private subnet
5797          * can connect to the internet.</p> <p>With a private NAT gateway, private
5798          * communication is routed across VPCs and on-premises networks through a transit
5799          * gateway or virtual private gateway. Common use cases include running large
5800          * workloads behind a small pool of allowlisted IPv4 addresses, preserving private
5801          * IPv4 addresses, and communicating between overlapping networks.</p> <p>For more
5802          * information, see <a
5803          * href="https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html">NAT
5804          * gateways</a> in the <i>Amazon Virtual Private Cloud User
5805          * Guide</i>.</p><p><h3>See Also:</h3>   <a
5806          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateNatGateway">AWS
5807          * API Reference</a></p>
5808          *
5809          * returns a future to the operation so that it can be executed in parallel to other requests.
5810          */
5811         virtual Model::CreateNatGatewayOutcomeCallable CreateNatGatewayCallable(const Model::CreateNatGatewayRequest& request) const;
5812 
5813         /**
5814          * <p>Creates a NAT gateway in the specified subnet. This action creates a network
5815          * interface in the specified subnet with a private IP address from the IP address
5816          * range of the subnet. You can create either a public NAT gateway or a private NAT
5817          * gateway.</p> <p>With a public NAT gateway, internet-bound traffic from a private
5818          * subnet can be routed to the NAT gateway, so that instances in a private subnet
5819          * can connect to the internet.</p> <p>With a private NAT gateway, private
5820          * communication is routed across VPCs and on-premises networks through a transit
5821          * gateway or virtual private gateway. Common use cases include running large
5822          * workloads behind a small pool of allowlisted IPv4 addresses, preserving private
5823          * IPv4 addresses, and communicating between overlapping networks.</p> <p>For more
5824          * information, see <a
5825          * href="https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html">NAT
5826          * gateways</a> in the <i>Amazon Virtual Private Cloud User
5827          * Guide</i>.</p><p><h3>See Also:</h3>   <a
5828          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateNatGateway">AWS
5829          * API Reference</a></p>
5830          *
5831          * Queues the request into a thread executor and triggers associated callback when operation has finished.
5832          */
5833         virtual void CreateNatGatewayAsync(const Model::CreateNatGatewayRequest& request, const CreateNatGatewayResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
5834 
5835         /**
5836          * <p>Creates a network ACL in a VPC. Network ACLs provide an optional layer of
5837          * security (in addition to security groups) for the instances in your VPC.</p>
5838          * <p>For more information, see <a
5839          * href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_ACLs.html">Network
5840          * ACLs</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.</p><p><h3>See
5841          * Also:</h3>   <a
5842          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateNetworkAcl">AWS
5843          * API Reference</a></p>
5844          */
5845         virtual Model::CreateNetworkAclOutcome CreateNetworkAcl(const Model::CreateNetworkAclRequest& request) const;
5846 
5847         /**
5848          * <p>Creates a network ACL in a VPC. Network ACLs provide an optional layer of
5849          * security (in addition to security groups) for the instances in your VPC.</p>
5850          * <p>For more information, see <a
5851          * href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_ACLs.html">Network
5852          * ACLs</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.</p><p><h3>See
5853          * Also:</h3>   <a
5854          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateNetworkAcl">AWS
5855          * API Reference</a></p>
5856          *
5857          * returns a future to the operation so that it can be executed in parallel to other requests.
5858          */
5859         virtual Model::CreateNetworkAclOutcomeCallable CreateNetworkAclCallable(const Model::CreateNetworkAclRequest& request) const;
5860 
5861         /**
5862          * <p>Creates a network ACL in a VPC. Network ACLs provide an optional layer of
5863          * security (in addition to security groups) for the instances in your VPC.</p>
5864          * <p>For more information, see <a
5865          * href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_ACLs.html">Network
5866          * ACLs</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.</p><p><h3>See
5867          * Also:</h3>   <a
5868          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateNetworkAcl">AWS
5869          * API Reference</a></p>
5870          *
5871          * Queues the request into a thread executor and triggers associated callback when operation has finished.
5872          */
5873         virtual void CreateNetworkAclAsync(const Model::CreateNetworkAclRequest& request, const CreateNetworkAclResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
5874 
5875         /**
5876          * <p>Creates an entry (a rule) in a network ACL with the specified rule number.
5877          * Each network ACL has a set of numbered ingress rules and a separate set of
5878          * numbered egress rules. When determining whether a packet should be allowed in or
5879          * out of a subnet associated with the ACL, we process the entries in the ACL
5880          * according to the rule numbers, in ascending order. Each network ACL has a set of
5881          * ingress rules and a separate set of egress rules.</p> <p>We recommend that you
5882          * leave room between the rule numbers (for example, 100, 110, 120, ...), and not
5883          * number them one right after the other (for example, 101, 102, 103, ...). This
5884          * makes it easier to add a rule between existing ones without having to renumber
5885          * the rules.</p> <p>After you add an entry, you can't modify it; you must either
5886          * replace it, or create an entry and delete the old one.</p> <p>For more
5887          * information about network ACLs, see <a
5888          * href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_ACLs.html">Network
5889          * ACLs</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.</p><p><h3>See
5890          * Also:</h3>   <a
5891          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateNetworkAclEntry">AWS
5892          * API Reference</a></p>
5893          */
5894         virtual Model::CreateNetworkAclEntryOutcome CreateNetworkAclEntry(const Model::CreateNetworkAclEntryRequest& request) const;
5895 
5896         /**
5897          * <p>Creates an entry (a rule) in a network ACL with the specified rule number.
5898          * Each network ACL has a set of numbered ingress rules and a separate set of
5899          * numbered egress rules. When determining whether a packet should be allowed in or
5900          * out of a subnet associated with the ACL, we process the entries in the ACL
5901          * according to the rule numbers, in ascending order. Each network ACL has a set of
5902          * ingress rules and a separate set of egress rules.</p> <p>We recommend that you
5903          * leave room between the rule numbers (for example, 100, 110, 120, ...), and not
5904          * number them one right after the other (for example, 101, 102, 103, ...). This
5905          * makes it easier to add a rule between existing ones without having to renumber
5906          * the rules.</p> <p>After you add an entry, you can't modify it; you must either
5907          * replace it, or create an entry and delete the old one.</p> <p>For more
5908          * information about network ACLs, see <a
5909          * href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_ACLs.html">Network
5910          * ACLs</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.</p><p><h3>See
5911          * Also:</h3>   <a
5912          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateNetworkAclEntry">AWS
5913          * API Reference</a></p>
5914          *
5915          * returns a future to the operation so that it can be executed in parallel to other requests.
5916          */
5917         virtual Model::CreateNetworkAclEntryOutcomeCallable CreateNetworkAclEntryCallable(const Model::CreateNetworkAclEntryRequest& request) const;
5918 
5919         /**
5920          * <p>Creates an entry (a rule) in a network ACL with the specified rule number.
5921          * Each network ACL has a set of numbered ingress rules and a separate set of
5922          * numbered egress rules. When determining whether a packet should be allowed in or
5923          * out of a subnet associated with the ACL, we process the entries in the ACL
5924          * according to the rule numbers, in ascending order. Each network ACL has a set of
5925          * ingress rules and a separate set of egress rules.</p> <p>We recommend that you
5926          * leave room between the rule numbers (for example, 100, 110, 120, ...), and not
5927          * number them one right after the other (for example, 101, 102, 103, ...). This
5928          * makes it easier to add a rule between existing ones without having to renumber
5929          * the rules.</p> <p>After you add an entry, you can't modify it; you must either
5930          * replace it, or create an entry and delete the old one.</p> <p>For more
5931          * information about network ACLs, see <a
5932          * href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_ACLs.html">Network
5933          * ACLs</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.</p><p><h3>See
5934          * Also:</h3>   <a
5935          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateNetworkAclEntry">AWS
5936          * API Reference</a></p>
5937          *
5938          * Queues the request into a thread executor and triggers associated callback when operation has finished.
5939          */
5940         virtual void CreateNetworkAclEntryAsync(const Model::CreateNetworkAclEntryRequest& request, const CreateNetworkAclEntryResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
5941 
5942         /**
5943          * <p>Creates a path to analyze for reachability.</p> <p>Reachability Analyzer
5944          * enables you to analyze and debug network reachability between two resources in
5945          * your virtual private cloud (VPC). For more information, see <a
5946          * href="https://docs.aws.amazon.com/vpc/latest/reachability/">What is Reachability
5947          * Analyzer</a>.</p><p><h3>See Also:</h3>   <a
5948          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateNetworkInsightsPath">AWS
5949          * API Reference</a></p>
5950          */
5951         virtual Model::CreateNetworkInsightsPathOutcome CreateNetworkInsightsPath(const Model::CreateNetworkInsightsPathRequest& request) const;
5952 
5953         /**
5954          * <p>Creates a path to analyze for reachability.</p> <p>Reachability Analyzer
5955          * enables you to analyze and debug network reachability between two resources in
5956          * your virtual private cloud (VPC). For more information, see <a
5957          * href="https://docs.aws.amazon.com/vpc/latest/reachability/">What is Reachability
5958          * Analyzer</a>.</p><p><h3>See Also:</h3>   <a
5959          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateNetworkInsightsPath">AWS
5960          * API Reference</a></p>
5961          *
5962          * returns a future to the operation so that it can be executed in parallel to other requests.
5963          */
5964         virtual Model::CreateNetworkInsightsPathOutcomeCallable CreateNetworkInsightsPathCallable(const Model::CreateNetworkInsightsPathRequest& request) const;
5965 
5966         /**
5967          * <p>Creates a path to analyze for reachability.</p> <p>Reachability Analyzer
5968          * enables you to analyze and debug network reachability between two resources in
5969          * your virtual private cloud (VPC). For more information, see <a
5970          * href="https://docs.aws.amazon.com/vpc/latest/reachability/">What is Reachability
5971          * Analyzer</a>.</p><p><h3>See Also:</h3>   <a
5972          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateNetworkInsightsPath">AWS
5973          * API Reference</a></p>
5974          *
5975          * Queues the request into a thread executor and triggers associated callback when operation has finished.
5976          */
5977         virtual void CreateNetworkInsightsPathAsync(const Model::CreateNetworkInsightsPathRequest& request, const CreateNetworkInsightsPathResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
5978 
5979         /**
5980          * <p>Creates a network interface in the specified subnet.</p> <p>For more
5981          * information about network interfaces, see <a
5982          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html">Elastic
5983          * Network Interfaces</a> in the <i>Amazon Virtual Private Cloud User
5984          * Guide</i>.</p><p><h3>See Also:</h3>   <a
5985          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateNetworkInterface">AWS
5986          * API Reference</a></p>
5987          */
5988         virtual Model::CreateNetworkInterfaceOutcome CreateNetworkInterface(const Model::CreateNetworkInterfaceRequest& request) const;
5989 
5990         /**
5991          * <p>Creates a network interface in the specified subnet.</p> <p>For more
5992          * information about network interfaces, see <a
5993          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html">Elastic
5994          * Network Interfaces</a> in the <i>Amazon Virtual Private Cloud User
5995          * Guide</i>.</p><p><h3>See Also:</h3>   <a
5996          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateNetworkInterface">AWS
5997          * API Reference</a></p>
5998          *
5999          * returns a future to the operation so that it can be executed in parallel to other requests.
6000          */
6001         virtual Model::CreateNetworkInterfaceOutcomeCallable CreateNetworkInterfaceCallable(const Model::CreateNetworkInterfaceRequest& request) const;
6002 
6003         /**
6004          * <p>Creates a network interface in the specified subnet.</p> <p>For more
6005          * information about network interfaces, see <a
6006          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html">Elastic
6007          * Network Interfaces</a> in the <i>Amazon Virtual Private Cloud User
6008          * Guide</i>.</p><p><h3>See Also:</h3>   <a
6009          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateNetworkInterface">AWS
6010          * API Reference</a></p>
6011          *
6012          * Queues the request into a thread executor and triggers associated callback when operation has finished.
6013          */
6014         virtual void CreateNetworkInterfaceAsync(const Model::CreateNetworkInterfaceRequest& request, const CreateNetworkInterfaceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
6015 
6016         /**
6017          * <p>Grants an Amazon Web Services-authorized account permission to attach the
6018          * specified network interface to an instance in their account.</p> <p>You can
6019          * grant permission to a single Amazon Web Services account only, and only one
6020          * account at a time.</p><p><h3>See Also:</h3>   <a
6021          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateNetworkInterfacePermission">AWS
6022          * API Reference</a></p>
6023          */
6024         virtual Model::CreateNetworkInterfacePermissionOutcome CreateNetworkInterfacePermission(const Model::CreateNetworkInterfacePermissionRequest& request) const;
6025 
6026         /**
6027          * <p>Grants an Amazon Web Services-authorized account permission to attach the
6028          * specified network interface to an instance in their account.</p> <p>You can
6029          * grant permission to a single Amazon Web Services account only, and only one
6030          * account at a time.</p><p><h3>See Also:</h3>   <a
6031          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateNetworkInterfacePermission">AWS
6032          * API Reference</a></p>
6033          *
6034          * returns a future to the operation so that it can be executed in parallel to other requests.
6035          */
6036         virtual Model::CreateNetworkInterfacePermissionOutcomeCallable CreateNetworkInterfacePermissionCallable(const Model::CreateNetworkInterfacePermissionRequest& request) const;
6037 
6038         /**
6039          * <p>Grants an Amazon Web Services-authorized account permission to attach the
6040          * specified network interface to an instance in their account.</p> <p>You can
6041          * grant permission to a single Amazon Web Services account only, and only one
6042          * account at a time.</p><p><h3>See Also:</h3>   <a
6043          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateNetworkInterfacePermission">AWS
6044          * API Reference</a></p>
6045          *
6046          * Queues the request into a thread executor and triggers associated callback when operation has finished.
6047          */
6048         virtual void CreateNetworkInterfacePermissionAsync(const Model::CreateNetworkInterfacePermissionRequest& request, const CreateNetworkInterfacePermissionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
6049 
6050         /**
6051          * <p>Creates a placement group in which to launch instances. The strategy of the
6052          * placement group determines how the instances are organized within the group.
6053          * </p> <p>A <code>cluster</code> placement group is a logical grouping of
6054          * instances within a single Availability Zone that benefit from low network
6055          * latency, high network throughput. A <code>spread</code> placement group places
6056          * instances on distinct hardware. A <code>partition</code> placement group places
6057          * groups of instances in different partitions, where instances in one partition do
6058          * not share the same hardware with instances in another partition.</p> <p>For more
6059          * information, see <a
6060          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html">Placement
6061          * groups</a> in the <i>Amazon EC2 User Guide</i>.</p><p><h3>See Also:</h3>   <a
6062          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreatePlacementGroup">AWS
6063          * API Reference</a></p>
6064          */
6065         virtual Model::CreatePlacementGroupOutcome CreatePlacementGroup(const Model::CreatePlacementGroupRequest& request) const;
6066 
6067         /**
6068          * <p>Creates a placement group in which to launch instances. The strategy of the
6069          * placement group determines how the instances are organized within the group.
6070          * </p> <p>A <code>cluster</code> placement group is a logical grouping of
6071          * instances within a single Availability Zone that benefit from low network
6072          * latency, high network throughput. A <code>spread</code> placement group places
6073          * instances on distinct hardware. A <code>partition</code> placement group places
6074          * groups of instances in different partitions, where instances in one partition do
6075          * not share the same hardware with instances in another partition.</p> <p>For more
6076          * information, see <a
6077          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html">Placement
6078          * groups</a> in the <i>Amazon EC2 User Guide</i>.</p><p><h3>See Also:</h3>   <a
6079          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreatePlacementGroup">AWS
6080          * API Reference</a></p>
6081          *
6082          * returns a future to the operation so that it can be executed in parallel to other requests.
6083          */
6084         virtual Model::CreatePlacementGroupOutcomeCallable CreatePlacementGroupCallable(const Model::CreatePlacementGroupRequest& request) const;
6085 
6086         /**
6087          * <p>Creates a placement group in which to launch instances. The strategy of the
6088          * placement group determines how the instances are organized within the group.
6089          * </p> <p>A <code>cluster</code> placement group is a logical grouping of
6090          * instances within a single Availability Zone that benefit from low network
6091          * latency, high network throughput. A <code>spread</code> placement group places
6092          * instances on distinct hardware. A <code>partition</code> placement group places
6093          * groups of instances in different partitions, where instances in one partition do
6094          * not share the same hardware with instances in another partition.</p> <p>For more
6095          * information, see <a
6096          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html">Placement
6097          * groups</a> in the <i>Amazon EC2 User Guide</i>.</p><p><h3>See Also:</h3>   <a
6098          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreatePlacementGroup">AWS
6099          * API Reference</a></p>
6100          *
6101          * Queues the request into a thread executor and triggers associated callback when operation has finished.
6102          */
6103         virtual void CreatePlacementGroupAsync(const Model::CreatePlacementGroupRequest& request, const CreatePlacementGroupResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
6104 
6105         /**
6106          * <p>Creates a root volume replacement task for an Amazon EC2 instance. The root
6107          * volume can either be restored to its initial launch state, or it can be restored
6108          * using a specific snapshot.</p> <p>For more information, see <a
6109          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-restoring-volume.html#replace-root">Replace
6110          * a root volume</a> in the <i>Amazon Elastic Compute Cloud User
6111          * Guide</i>.</p><p><h3>See Also:</h3>   <a
6112          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateReplaceRootVolumeTask">AWS
6113          * API Reference</a></p>
6114          */
6115         virtual Model::CreateReplaceRootVolumeTaskOutcome CreateReplaceRootVolumeTask(const Model::CreateReplaceRootVolumeTaskRequest& request) const;
6116 
6117         /**
6118          * <p>Creates a root volume replacement task for an Amazon EC2 instance. The root
6119          * volume can either be restored to its initial launch state, or it can be restored
6120          * using a specific snapshot.</p> <p>For more information, see <a
6121          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-restoring-volume.html#replace-root">Replace
6122          * a root volume</a> in the <i>Amazon Elastic Compute Cloud User
6123          * Guide</i>.</p><p><h3>See Also:</h3>   <a
6124          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateReplaceRootVolumeTask">AWS
6125          * API Reference</a></p>
6126          *
6127          * returns a future to the operation so that it can be executed in parallel to other requests.
6128          */
6129         virtual Model::CreateReplaceRootVolumeTaskOutcomeCallable CreateReplaceRootVolumeTaskCallable(const Model::CreateReplaceRootVolumeTaskRequest& request) const;
6130 
6131         /**
6132          * <p>Creates a root volume replacement task for an Amazon EC2 instance. The root
6133          * volume can either be restored to its initial launch state, or it can be restored
6134          * using a specific snapshot.</p> <p>For more information, see <a
6135          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-restoring-volume.html#replace-root">Replace
6136          * a root volume</a> in the <i>Amazon Elastic Compute Cloud User
6137          * Guide</i>.</p><p><h3>See Also:</h3>   <a
6138          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateReplaceRootVolumeTask">AWS
6139          * API Reference</a></p>
6140          *
6141          * Queues the request into a thread executor and triggers associated callback when operation has finished.
6142          */
6143         virtual void CreateReplaceRootVolumeTaskAsync(const Model::CreateReplaceRootVolumeTaskRequest& request, const CreateReplaceRootVolumeTaskResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
6144 
6145         /**
6146          * <p>Creates a listing for Amazon EC2 Standard Reserved Instances to be sold in
6147          * the Reserved Instance Marketplace. You can submit one Standard Reserved Instance
6148          * listing at a time. To get a list of your Standard Reserved Instances, you can
6149          * use the <a>DescribeReservedInstances</a> operation.</p>  <p>Only Standard
6150          * Reserved Instances can be sold in the Reserved Instance Marketplace. Convertible
6151          * Reserved Instances cannot be sold.</p>  <p>The Reserved Instance
6152          * Marketplace matches sellers who want to resell Standard Reserved Instance
6153          * capacity that they no longer need with buyers who want to purchase additional
6154          * capacity. Reserved Instances bought and sold through the Reserved Instance
6155          * Marketplace work like any other Reserved Instances.</p> <p>To sell your Standard
6156          * Reserved Instances, you must first register as a seller in the Reserved Instance
6157          * Marketplace. After completing the registration process, you can create a
6158          * Reserved Instance Marketplace listing of some or all of your Standard Reserved
6159          * Instances, and specify the upfront price to receive for them. Your Standard
6160          * Reserved Instance listings then become available for purchase. To view the
6161          * details of your Standard Reserved Instance listing, you can use the
6162          * <a>DescribeReservedInstancesListings</a> operation.</p> <p>For more information,
6163          * see <a
6164          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-market-general.html">Reserved
6165          * Instance Marketplace</a> in the <i>Amazon EC2 User Guide</i>.</p><p><h3>See
6166          * Also:</h3>   <a
6167          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateReservedInstancesListing">AWS
6168          * API Reference</a></p>
6169          */
6170         virtual Model::CreateReservedInstancesListingOutcome CreateReservedInstancesListing(const Model::CreateReservedInstancesListingRequest& request) const;
6171 
6172         /**
6173          * <p>Creates a listing for Amazon EC2 Standard Reserved Instances to be sold in
6174          * the Reserved Instance Marketplace. You can submit one Standard Reserved Instance
6175          * listing at a time. To get a list of your Standard Reserved Instances, you can
6176          * use the <a>DescribeReservedInstances</a> operation.</p>  <p>Only Standard
6177          * Reserved Instances can be sold in the Reserved Instance Marketplace. Convertible
6178          * Reserved Instances cannot be sold.</p>  <p>The Reserved Instance
6179          * Marketplace matches sellers who want to resell Standard Reserved Instance
6180          * capacity that they no longer need with buyers who want to purchase additional
6181          * capacity. Reserved Instances bought and sold through the Reserved Instance
6182          * Marketplace work like any other Reserved Instances.</p> <p>To sell your Standard
6183          * Reserved Instances, you must first register as a seller in the Reserved Instance
6184          * Marketplace. After completing the registration process, you can create a
6185          * Reserved Instance Marketplace listing of some or all of your Standard Reserved
6186          * Instances, and specify the upfront price to receive for them. Your Standard
6187          * Reserved Instance listings then become available for purchase. To view the
6188          * details of your Standard Reserved Instance listing, you can use the
6189          * <a>DescribeReservedInstancesListings</a> operation.</p> <p>For more information,
6190          * see <a
6191          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-market-general.html">Reserved
6192          * Instance Marketplace</a> in the <i>Amazon EC2 User Guide</i>.</p><p><h3>See
6193          * Also:</h3>   <a
6194          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateReservedInstancesListing">AWS
6195          * API Reference</a></p>
6196          *
6197          * returns a future to the operation so that it can be executed in parallel to other requests.
6198          */
6199         virtual Model::CreateReservedInstancesListingOutcomeCallable CreateReservedInstancesListingCallable(const Model::CreateReservedInstancesListingRequest& request) const;
6200 
6201         /**
6202          * <p>Creates a listing for Amazon EC2 Standard Reserved Instances to be sold in
6203          * the Reserved Instance Marketplace. You can submit one Standard Reserved Instance
6204          * listing at a time. To get a list of your Standard Reserved Instances, you can
6205          * use the <a>DescribeReservedInstances</a> operation.</p>  <p>Only Standard
6206          * Reserved Instances can be sold in the Reserved Instance Marketplace. Convertible
6207          * Reserved Instances cannot be sold.</p>  <p>The Reserved Instance
6208          * Marketplace matches sellers who want to resell Standard Reserved Instance
6209          * capacity that they no longer need with buyers who want to purchase additional
6210          * capacity. Reserved Instances bought and sold through the Reserved Instance
6211          * Marketplace work like any other Reserved Instances.</p> <p>To sell your Standard
6212          * Reserved Instances, you must first register as a seller in the Reserved Instance
6213          * Marketplace. After completing the registration process, you can create a
6214          * Reserved Instance Marketplace listing of some or all of your Standard Reserved
6215          * Instances, and specify the upfront price to receive for them. Your Standard
6216          * Reserved Instance listings then become available for purchase. To view the
6217          * details of your Standard Reserved Instance listing, you can use the
6218          * <a>DescribeReservedInstancesListings</a> operation.</p> <p>For more information,
6219          * see <a
6220          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-market-general.html">Reserved
6221          * Instance Marketplace</a> in the <i>Amazon EC2 User Guide</i>.</p><p><h3>See
6222          * Also:</h3>   <a
6223          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateReservedInstancesListing">AWS
6224          * API Reference</a></p>
6225          *
6226          * Queues the request into a thread executor and triggers associated callback when operation has finished.
6227          */
6228         virtual void CreateReservedInstancesListingAsync(const Model::CreateReservedInstancesListingRequest& request, const CreateReservedInstancesListingResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
6229 
6230         /**
6231          * <p>Starts a task that restores an AMI from an Amazon S3 object that was
6232          * previously created by using <a
6233          * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateStoreImageTask.html">CreateStoreImageTask</a>.</p>
6234          * <p>To use this API, you must have the required permissions. For more
6235          * information, see <a
6236          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-store-restore.html#ami-s3-permissions">Permissions
6237          * for storing and restoring AMIs using Amazon S3</a> in the <i>Amazon Elastic
6238          * Compute Cloud User Guide</i>.</p> <p>For more information, see <a
6239          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-store-restore.html">Store
6240          * and restore an AMI using Amazon S3</a> in the <i>Amazon Elastic Compute Cloud
6241          * User Guide</i>.</p><p><h3>See Also:</h3>   <a
6242          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateRestoreImageTask">AWS
6243          * API Reference</a></p>
6244          */
6245         virtual Model::CreateRestoreImageTaskOutcome CreateRestoreImageTask(const Model::CreateRestoreImageTaskRequest& request) const;
6246 
6247         /**
6248          * <p>Starts a task that restores an AMI from an Amazon S3 object that was
6249          * previously created by using <a
6250          * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateStoreImageTask.html">CreateStoreImageTask</a>.</p>
6251          * <p>To use this API, you must have the required permissions. For more
6252          * information, see <a
6253          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-store-restore.html#ami-s3-permissions">Permissions
6254          * for storing and restoring AMIs using Amazon S3</a> in the <i>Amazon Elastic
6255          * Compute Cloud User Guide</i>.</p> <p>For more information, see <a
6256          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-store-restore.html">Store
6257          * and restore an AMI using Amazon S3</a> in the <i>Amazon Elastic Compute Cloud
6258          * User Guide</i>.</p><p><h3>See Also:</h3>   <a
6259          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateRestoreImageTask">AWS
6260          * API Reference</a></p>
6261          *
6262          * returns a future to the operation so that it can be executed in parallel to other requests.
6263          */
6264         virtual Model::CreateRestoreImageTaskOutcomeCallable CreateRestoreImageTaskCallable(const Model::CreateRestoreImageTaskRequest& request) const;
6265 
6266         /**
6267          * <p>Starts a task that restores an AMI from an Amazon S3 object that was
6268          * previously created by using <a
6269          * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateStoreImageTask.html">CreateStoreImageTask</a>.</p>
6270          * <p>To use this API, you must have the required permissions. For more
6271          * information, see <a
6272          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-store-restore.html#ami-s3-permissions">Permissions
6273          * for storing and restoring AMIs using Amazon S3</a> in the <i>Amazon Elastic
6274          * Compute Cloud User Guide</i>.</p> <p>For more information, see <a
6275          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-store-restore.html">Store
6276          * and restore an AMI using Amazon S3</a> in the <i>Amazon Elastic Compute Cloud
6277          * User Guide</i>.</p><p><h3>See Also:</h3>   <a
6278          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateRestoreImageTask">AWS
6279          * API Reference</a></p>
6280          *
6281          * Queues the request into a thread executor and triggers associated callback when operation has finished.
6282          */
6283         virtual void CreateRestoreImageTaskAsync(const Model::CreateRestoreImageTaskRequest& request, const CreateRestoreImageTaskResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
6284 
6285         /**
6286          * <p>Creates a route in a route table within a VPC.</p> <p>You must specify one of
6287          * the following targets: internet gateway or virtual private gateway, NAT
6288          * instance, NAT gateway, VPC peering connection, network interface, egress-only
6289          * internet gateway, or transit gateway.</p> <p>When determining how to route
6290          * traffic, we use the route with the most specific match. For example, traffic is
6291          * destined for the IPv4 address <code>192.0.2.3</code>, and the route table
6292          * includes the following two IPv4 routes:</p> <ul> <li> <p>
6293          * <code>192.0.2.0/24</code> (goes to some target A)</p> </li> <li> <p>
6294          * <code>192.0.2.0/28</code> (goes to some target B)</p> </li> </ul> <p>Both routes
6295          * apply to the traffic destined for <code>192.0.2.3</code>. However, the second
6296          * route in the list covers a smaller number of IP addresses and is therefore more
6297          * specific, so we use that route to determine where to target the traffic.</p>
6298          * <p>For more information about route tables, see <a
6299          * href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html">Route
6300          * tables</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.</p><p><h3>See
6301          * Also:</h3>   <a
6302          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateRoute">AWS API
6303          * Reference</a></p>
6304          */
6305         virtual Model::CreateRouteOutcome CreateRoute(const Model::CreateRouteRequest& request) const;
6306 
6307         /**
6308          * <p>Creates a route in a route table within a VPC.</p> <p>You must specify one of
6309          * the following targets: internet gateway or virtual private gateway, NAT
6310          * instance, NAT gateway, VPC peering connection, network interface, egress-only
6311          * internet gateway, or transit gateway.</p> <p>When determining how to route
6312          * traffic, we use the route with the most specific match. For example, traffic is
6313          * destined for the IPv4 address <code>192.0.2.3</code>, and the route table
6314          * includes the following two IPv4 routes:</p> <ul> <li> <p>
6315          * <code>192.0.2.0/24</code> (goes to some target A)</p> </li> <li> <p>
6316          * <code>192.0.2.0/28</code> (goes to some target B)</p> </li> </ul> <p>Both routes
6317          * apply to the traffic destined for <code>192.0.2.3</code>. However, the second
6318          * route in the list covers a smaller number of IP addresses and is therefore more
6319          * specific, so we use that route to determine where to target the traffic.</p>
6320          * <p>For more information about route tables, see <a
6321          * href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html">Route
6322          * tables</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.</p><p><h3>See
6323          * Also:</h3>   <a
6324          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateRoute">AWS API
6325          * Reference</a></p>
6326          *
6327          * returns a future to the operation so that it can be executed in parallel to other requests.
6328          */
6329         virtual Model::CreateRouteOutcomeCallable CreateRouteCallable(const Model::CreateRouteRequest& request) const;
6330 
6331         /**
6332          * <p>Creates a route in a route table within a VPC.</p> <p>You must specify one of
6333          * the following targets: internet gateway or virtual private gateway, NAT
6334          * instance, NAT gateway, VPC peering connection, network interface, egress-only
6335          * internet gateway, or transit gateway.</p> <p>When determining how to route
6336          * traffic, we use the route with the most specific match. For example, traffic is
6337          * destined for the IPv4 address <code>192.0.2.3</code>, and the route table
6338          * includes the following two IPv4 routes:</p> <ul> <li> <p>
6339          * <code>192.0.2.0/24</code> (goes to some target A)</p> </li> <li> <p>
6340          * <code>192.0.2.0/28</code> (goes to some target B)</p> </li> </ul> <p>Both routes
6341          * apply to the traffic destined for <code>192.0.2.3</code>. However, the second
6342          * route in the list covers a smaller number of IP addresses and is therefore more
6343          * specific, so we use that route to determine where to target the traffic.</p>
6344          * <p>For more information about route tables, see <a
6345          * href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html">Route
6346          * tables</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.</p><p><h3>See
6347          * Also:</h3>   <a
6348          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateRoute">AWS API
6349          * Reference</a></p>
6350          *
6351          * Queues the request into a thread executor and triggers associated callback when operation has finished.
6352          */
6353         virtual void CreateRouteAsync(const Model::CreateRouteRequest& request, const CreateRouteResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
6354 
6355         /**
6356          * <p>Creates a route table for the specified VPC. After you create a route table,
6357          * you can add routes and associate the table with a subnet.</p> <p>For more
6358          * information, see <a
6359          * href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html">Route
6360          * tables</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.</p><p><h3>See
6361          * Also:</h3>   <a
6362          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateRouteTable">AWS
6363          * API Reference</a></p>
6364          */
6365         virtual Model::CreateRouteTableOutcome CreateRouteTable(const Model::CreateRouteTableRequest& request) const;
6366 
6367         /**
6368          * <p>Creates a route table for the specified VPC. After you create a route table,
6369          * you can add routes and associate the table with a subnet.</p> <p>For more
6370          * information, see <a
6371          * href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html">Route
6372          * tables</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.</p><p><h3>See
6373          * Also:</h3>   <a
6374          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateRouteTable">AWS
6375          * API Reference</a></p>
6376          *
6377          * returns a future to the operation so that it can be executed in parallel to other requests.
6378          */
6379         virtual Model::CreateRouteTableOutcomeCallable CreateRouteTableCallable(const Model::CreateRouteTableRequest& request) const;
6380 
6381         /**
6382          * <p>Creates a route table for the specified VPC. After you create a route table,
6383          * you can add routes and associate the table with a subnet.</p> <p>For more
6384          * information, see <a
6385          * href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html">Route
6386          * tables</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.</p><p><h3>See
6387          * Also:</h3>   <a
6388          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateRouteTable">AWS
6389          * API Reference</a></p>
6390          *
6391          * Queues the request into a thread executor and triggers associated callback when operation has finished.
6392          */
6393         virtual void CreateRouteTableAsync(const Model::CreateRouteTableRequest& request, const CreateRouteTableResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
6394 
6395         /**
6396          * <p>Creates a security group.</p> <p>A security group acts as a virtual firewall
6397          * for your instance to control inbound and outbound traffic. For more information,
6398          * see <a
6399          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html">Amazon
6400          * EC2 security groups</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>
6401          * and <a
6402          * href="https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_SecurityGroups.html">Security
6403          * groups for your VPC</a> in the <i>Amazon Virtual Private Cloud User
6404          * Guide</i>.</p> <p>When you create a security group, you specify a friendly name
6405          * of your choice. You can have a security group for use in EC2-Classic with the
6406          * same name as a security group for use in a VPC. However, you can't have two
6407          * security groups for use in EC2-Classic with the same name or two security groups
6408          * for use in a VPC with the same name.</p> <p>You have a default security group
6409          * for use in EC2-Classic and a default security group for use in your VPC. If you
6410          * don't specify a security group when you launch an instance, the instance is
6411          * launched into the appropriate default security group. A default security group
6412          * includes a default rule that grants instances unrestricted network access to
6413          * each other.</p> <p>You can add or remove rules from your security groups using
6414          * <a>AuthorizeSecurityGroupIngress</a>, <a>AuthorizeSecurityGroupEgress</a>,
6415          * <a>RevokeSecurityGroupIngress</a>, and <a>RevokeSecurityGroupEgress</a>.</p>
6416          * <p>For more information about VPC security group limits, see <a
6417          * href="https://docs.aws.amazon.com/vpc/latest/userguide/amazon-vpc-limits.html">Amazon
6418          * VPC Limits</a>.</p><p><h3>See Also:</h3>   <a
6419          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateSecurityGroup">AWS
6420          * API Reference</a></p>
6421          */
6422         virtual Model::CreateSecurityGroupOutcome CreateSecurityGroup(const Model::CreateSecurityGroupRequest& request) const;
6423 
6424         /**
6425          * <p>Creates a security group.</p> <p>A security group acts as a virtual firewall
6426          * for your instance to control inbound and outbound traffic. For more information,
6427          * see <a
6428          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html">Amazon
6429          * EC2 security groups</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>
6430          * and <a
6431          * href="https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_SecurityGroups.html">Security
6432          * groups for your VPC</a> in the <i>Amazon Virtual Private Cloud User
6433          * Guide</i>.</p> <p>When you create a security group, you specify a friendly name
6434          * of your choice. You can have a security group for use in EC2-Classic with the
6435          * same name as a security group for use in a VPC. However, you can't have two
6436          * security groups for use in EC2-Classic with the same name or two security groups
6437          * for use in a VPC with the same name.</p> <p>You have a default security group
6438          * for use in EC2-Classic and a default security group for use in your VPC. If you
6439          * don't specify a security group when you launch an instance, the instance is
6440          * launched into the appropriate default security group. A default security group
6441          * includes a default rule that grants instances unrestricted network access to
6442          * each other.</p> <p>You can add or remove rules from your security groups using
6443          * <a>AuthorizeSecurityGroupIngress</a>, <a>AuthorizeSecurityGroupEgress</a>,
6444          * <a>RevokeSecurityGroupIngress</a>, and <a>RevokeSecurityGroupEgress</a>.</p>
6445          * <p>For more information about VPC security group limits, see <a
6446          * href="https://docs.aws.amazon.com/vpc/latest/userguide/amazon-vpc-limits.html">Amazon
6447          * VPC Limits</a>.</p><p><h3>See Also:</h3>   <a
6448          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateSecurityGroup">AWS
6449          * API Reference</a></p>
6450          *
6451          * returns a future to the operation so that it can be executed in parallel to other requests.
6452          */
6453         virtual Model::CreateSecurityGroupOutcomeCallable CreateSecurityGroupCallable(const Model::CreateSecurityGroupRequest& request) const;
6454 
6455         /**
6456          * <p>Creates a security group.</p> <p>A security group acts as a virtual firewall
6457          * for your instance to control inbound and outbound traffic. For more information,
6458          * see <a
6459          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html">Amazon
6460          * EC2 security groups</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>
6461          * and <a
6462          * href="https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_SecurityGroups.html">Security
6463          * groups for your VPC</a> in the <i>Amazon Virtual Private Cloud User
6464          * Guide</i>.</p> <p>When you create a security group, you specify a friendly name
6465          * of your choice. You can have a security group for use in EC2-Classic with the
6466          * same name as a security group for use in a VPC. However, you can't have two
6467          * security groups for use in EC2-Classic with the same name or two security groups
6468          * for use in a VPC with the same name.</p> <p>You have a default security group
6469          * for use in EC2-Classic and a default security group for use in your VPC. If you
6470          * don't specify a security group when you launch an instance, the instance is
6471          * launched into the appropriate default security group. A default security group
6472          * includes a default rule that grants instances unrestricted network access to
6473          * each other.</p> <p>You can add or remove rules from your security groups using
6474          * <a>AuthorizeSecurityGroupIngress</a>, <a>AuthorizeSecurityGroupEgress</a>,
6475          * <a>RevokeSecurityGroupIngress</a>, and <a>RevokeSecurityGroupEgress</a>.</p>
6476          * <p>For more information about VPC security group limits, see <a
6477          * href="https://docs.aws.amazon.com/vpc/latest/userguide/amazon-vpc-limits.html">Amazon
6478          * VPC Limits</a>.</p><p><h3>See Also:</h3>   <a
6479          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateSecurityGroup">AWS
6480          * API Reference</a></p>
6481          *
6482          * Queues the request into a thread executor and triggers associated callback when operation has finished.
6483          */
6484         virtual void CreateSecurityGroupAsync(const Model::CreateSecurityGroupRequest& request, const CreateSecurityGroupResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
6485 
6486         /**
6487          * <p>Creates a snapshot of an EBS volume and stores it in Amazon S3. You can use
6488          * snapshots for backups, to make copies of EBS volumes, and to save data before
6489          * shutting down an instance.</p> <p>You can create snapshots of volumes in a
6490          * Region and volumes on an Outpost. If you create a snapshot of a volume in a
6491          * Region, the snapshot must be stored in the same Region as the volume. If you
6492          * create a snapshot of a volume on an Outpost, the snapshot can be stored on the
6493          * same Outpost as the volume, or in the Region for that Outpost.</p> <p>When a
6494          * snapshot is created, any Amazon Web Services Marketplace product codes that are
6495          * associated with the source volume are propagated to the snapshot.</p> <p>You can
6496          * take a snapshot of an attached volume that is in use. However, snapshots only
6497          * capture data that has been written to your Amazon EBS volume at the time the
6498          * snapshot command is issued; this might exclude any data that has been cached by
6499          * any applications or the operating system. If you can pause any file systems on
6500          * the volume long enough to take a snapshot, your snapshot should be complete.
6501          * However, if you cannot pause all file writes to the volume, you should unmount
6502          * the volume from within the instance, issue the snapshot command, and then
6503          * remount the volume to ensure a consistent and complete snapshot. You may remount
6504          * and use your volume while the snapshot status is <code>pending</code>.</p> <p>To
6505          * create a snapshot for Amazon EBS volumes that serve as root devices, you should
6506          * stop the instance before taking the snapshot.</p> <p>Snapshots that are taken
6507          * from encrypted volumes are automatically encrypted. Volumes that are created
6508          * from encrypted snapshots are also automatically encrypted. Your encrypted
6509          * volumes and any associated snapshots always remain protected.</p> <p>You can tag
6510          * your snapshots during creation. For more information, see <a
6511          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html">Tag
6512          * your Amazon EC2 resources</a> in the <i>Amazon Elastic Compute Cloud User
6513          * Guide</i>.</p> <p>For more information, see <a
6514          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html">Amazon
6515          * Elastic Block Store</a> and <a
6516          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html">Amazon
6517          * EBS encryption</a> in the <i>Amazon Elastic Compute Cloud User
6518          * Guide</i>.</p><p><h3>See Also:</h3>   <a
6519          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateSnapshot">AWS
6520          * API Reference</a></p>
6521          */
6522         virtual Model::CreateSnapshotOutcome CreateSnapshot(const Model::CreateSnapshotRequest& request) const;
6523 
6524         /**
6525          * <p>Creates a snapshot of an EBS volume and stores it in Amazon S3. You can use
6526          * snapshots for backups, to make copies of EBS volumes, and to save data before
6527          * shutting down an instance.</p> <p>You can create snapshots of volumes in a
6528          * Region and volumes on an Outpost. If you create a snapshot of a volume in a
6529          * Region, the snapshot must be stored in the same Region as the volume. If you
6530          * create a snapshot of a volume on an Outpost, the snapshot can be stored on the
6531          * same Outpost as the volume, or in the Region for that Outpost.</p> <p>When a
6532          * snapshot is created, any Amazon Web Services Marketplace product codes that are
6533          * associated with the source volume are propagated to the snapshot.</p> <p>You can
6534          * take a snapshot of an attached volume that is in use. However, snapshots only
6535          * capture data that has been written to your Amazon EBS volume at the time the
6536          * snapshot command is issued; this might exclude any data that has been cached by
6537          * any applications or the operating system. If you can pause any file systems on
6538          * the volume long enough to take a snapshot, your snapshot should be complete.
6539          * However, if you cannot pause all file writes to the volume, you should unmount
6540          * the volume from within the instance, issue the snapshot command, and then
6541          * remount the volume to ensure a consistent and complete snapshot. You may remount
6542          * and use your volume while the snapshot status is <code>pending</code>.</p> <p>To
6543          * create a snapshot for Amazon EBS volumes that serve as root devices, you should
6544          * stop the instance before taking the snapshot.</p> <p>Snapshots that are taken
6545          * from encrypted volumes are automatically encrypted. Volumes that are created
6546          * from encrypted snapshots are also automatically encrypted. Your encrypted
6547          * volumes and any associated snapshots always remain protected.</p> <p>You can tag
6548          * your snapshots during creation. For more information, see <a
6549          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html">Tag
6550          * your Amazon EC2 resources</a> in the <i>Amazon Elastic Compute Cloud User
6551          * Guide</i>.</p> <p>For more information, see <a
6552          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html">Amazon
6553          * Elastic Block Store</a> and <a
6554          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html">Amazon
6555          * EBS encryption</a> in the <i>Amazon Elastic Compute Cloud User
6556          * Guide</i>.</p><p><h3>See Also:</h3>   <a
6557          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateSnapshot">AWS
6558          * API Reference</a></p>
6559          *
6560          * returns a future to the operation so that it can be executed in parallel to other requests.
6561          */
6562         virtual Model::CreateSnapshotOutcomeCallable CreateSnapshotCallable(const Model::CreateSnapshotRequest& request) const;
6563 
6564         /**
6565          * <p>Creates a snapshot of an EBS volume and stores it in Amazon S3. You can use
6566          * snapshots for backups, to make copies of EBS volumes, and to save data before
6567          * shutting down an instance.</p> <p>You can create snapshots of volumes in a
6568          * Region and volumes on an Outpost. If you create a snapshot of a volume in a
6569          * Region, the snapshot must be stored in the same Region as the volume. If you
6570          * create a snapshot of a volume on an Outpost, the snapshot can be stored on the
6571          * same Outpost as the volume, or in the Region for that Outpost.</p> <p>When a
6572          * snapshot is created, any Amazon Web Services Marketplace product codes that are
6573          * associated with the source volume are propagated to the snapshot.</p> <p>You can
6574          * take a snapshot of an attached volume that is in use. However, snapshots only
6575          * capture data that has been written to your Amazon EBS volume at the time the
6576          * snapshot command is issued; this might exclude any data that has been cached by
6577          * any applications or the operating system. If you can pause any file systems on
6578          * the volume long enough to take a snapshot, your snapshot should be complete.
6579          * However, if you cannot pause all file writes to the volume, you should unmount
6580          * the volume from within the instance, issue the snapshot command, and then
6581          * remount the volume to ensure a consistent and complete snapshot. You may remount
6582          * and use your volume while the snapshot status is <code>pending</code>.</p> <p>To
6583          * create a snapshot for Amazon EBS volumes that serve as root devices, you should
6584          * stop the instance before taking the snapshot.</p> <p>Snapshots that are taken
6585          * from encrypted volumes are automatically encrypted. Volumes that are created
6586          * from encrypted snapshots are also automatically encrypted. Your encrypted
6587          * volumes and any associated snapshots always remain protected.</p> <p>You can tag
6588          * your snapshots during creation. For more information, see <a
6589          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html">Tag
6590          * your Amazon EC2 resources</a> in the <i>Amazon Elastic Compute Cloud User
6591          * Guide</i>.</p> <p>For more information, see <a
6592          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html">Amazon
6593          * Elastic Block Store</a> and <a
6594          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html">Amazon
6595          * EBS encryption</a> in the <i>Amazon Elastic Compute Cloud User
6596          * Guide</i>.</p><p><h3>See Also:</h3>   <a
6597          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateSnapshot">AWS
6598          * API Reference</a></p>
6599          *
6600          * Queues the request into a thread executor and triggers associated callback when operation has finished.
6601          */
6602         virtual void CreateSnapshotAsync(const Model::CreateSnapshotRequest& request, const CreateSnapshotResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
6603 
6604         /**
6605          * <p>Creates crash-consistent snapshots of multiple EBS volumes and stores the
6606          * data in S3. Volumes are chosen by specifying an instance. Any attached volumes
6607          * will produce one snapshot each that is crash-consistent across the instance.
6608          * Boot volumes can be excluded by changing the parameters. </p> <p>You can create
6609          * multi-volume snapshots of instances in a Region and instances on an Outpost. If
6610          * you create snapshots from an instance in a Region, the snapshots must be stored
6611          * in the same Region as the instance. If you create snapshots from an instance on
6612          * an Outpost, the snapshots can be stored on the same Outpost as the instance, or
6613          * in the Region for that Outpost.</p><p><h3>See Also:</h3>   <a
6614          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateSnapshots">AWS
6615          * API Reference</a></p>
6616          */
6617         virtual Model::CreateSnapshotsOutcome CreateSnapshots(const Model::CreateSnapshotsRequest& request) const;
6618 
6619         /**
6620          * <p>Creates crash-consistent snapshots of multiple EBS volumes and stores the
6621          * data in S3. Volumes are chosen by specifying an instance. Any attached volumes
6622          * will produce one snapshot each that is crash-consistent across the instance.
6623          * Boot volumes can be excluded by changing the parameters. </p> <p>You can create
6624          * multi-volume snapshots of instances in a Region and instances on an Outpost. If
6625          * you create snapshots from an instance in a Region, the snapshots must be stored
6626          * in the same Region as the instance. If you create snapshots from an instance on
6627          * an Outpost, the snapshots can be stored on the same Outpost as the instance, or
6628          * in the Region for that Outpost.</p><p><h3>See Also:</h3>   <a
6629          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateSnapshots">AWS
6630          * API Reference</a></p>
6631          *
6632          * returns a future to the operation so that it can be executed in parallel to other requests.
6633          */
6634         virtual Model::CreateSnapshotsOutcomeCallable CreateSnapshotsCallable(const Model::CreateSnapshotsRequest& request) const;
6635 
6636         /**
6637          * <p>Creates crash-consistent snapshots of multiple EBS volumes and stores the
6638          * data in S3. Volumes are chosen by specifying an instance. Any attached volumes
6639          * will produce one snapshot each that is crash-consistent across the instance.
6640          * Boot volumes can be excluded by changing the parameters. </p> <p>You can create
6641          * multi-volume snapshots of instances in a Region and instances on an Outpost. If
6642          * you create snapshots from an instance in a Region, the snapshots must be stored
6643          * in the same Region as the instance. If you create snapshots from an instance on
6644          * an Outpost, the snapshots can be stored on the same Outpost as the instance, or
6645          * in the Region for that Outpost.</p><p><h3>See Also:</h3>   <a
6646          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateSnapshots">AWS
6647          * API Reference</a></p>
6648          *
6649          * Queues the request into a thread executor and triggers associated callback when operation has finished.
6650          */
6651         virtual void CreateSnapshotsAsync(const Model::CreateSnapshotsRequest& request, const CreateSnapshotsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
6652 
6653         /**
6654          * <p>Creates a data feed for Spot Instances, enabling you to view Spot Instance
6655          * usage logs. You can create one data feed per Amazon Web Services account. For
6656          * more information, see <a
6657          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-data-feeds.html">Spot
6658          * Instance data feed</a> in the <i>Amazon EC2 User Guide for Linux
6659          * Instances</i>.</p><p><h3>See Also:</h3>   <a
6660          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateSpotDatafeedSubscription">AWS
6661          * API Reference</a></p>
6662          */
6663         virtual Model::CreateSpotDatafeedSubscriptionOutcome CreateSpotDatafeedSubscription(const Model::CreateSpotDatafeedSubscriptionRequest& request) const;
6664 
6665         /**
6666          * <p>Creates a data feed for Spot Instances, enabling you to view Spot Instance
6667          * usage logs. You can create one data feed per Amazon Web Services account. For
6668          * more information, see <a
6669          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-data-feeds.html">Spot
6670          * Instance data feed</a> in the <i>Amazon EC2 User Guide for Linux
6671          * Instances</i>.</p><p><h3>See Also:</h3>   <a
6672          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateSpotDatafeedSubscription">AWS
6673          * API Reference</a></p>
6674          *
6675          * returns a future to the operation so that it can be executed in parallel to other requests.
6676          */
6677         virtual Model::CreateSpotDatafeedSubscriptionOutcomeCallable CreateSpotDatafeedSubscriptionCallable(const Model::CreateSpotDatafeedSubscriptionRequest& request) const;
6678 
6679         /**
6680          * <p>Creates a data feed for Spot Instances, enabling you to view Spot Instance
6681          * usage logs. You can create one data feed per Amazon Web Services account. For
6682          * more information, see <a
6683          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-data-feeds.html">Spot
6684          * Instance data feed</a> in the <i>Amazon EC2 User Guide for Linux
6685          * Instances</i>.</p><p><h3>See Also:</h3>   <a
6686          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateSpotDatafeedSubscription">AWS
6687          * API Reference</a></p>
6688          *
6689          * Queues the request into a thread executor and triggers associated callback when operation has finished.
6690          */
6691         virtual void CreateSpotDatafeedSubscriptionAsync(const Model::CreateSpotDatafeedSubscriptionRequest& request, const CreateSpotDatafeedSubscriptionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
6692 
6693         /**
6694          * <p>Stores an AMI as a single object in an Amazon S3 bucket.</p> <p>To use this
6695          * API, you must have the required permissions. For more information, see <a
6696          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-store-restore.html#ami-s3-permissions">Permissions
6697          * for storing and restoring AMIs using Amazon S3</a> in the <i>Amazon Elastic
6698          * Compute Cloud User Guide</i>.</p> <p>For more information, see <a
6699          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-store-restore.html">Store
6700          * and restore an AMI using Amazon S3</a> in the <i>Amazon Elastic Compute Cloud
6701          * User Guide</i>.</p><p><h3>See Also:</h3>   <a
6702          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateStoreImageTask">AWS
6703          * API Reference</a></p>
6704          */
6705         virtual Model::CreateStoreImageTaskOutcome CreateStoreImageTask(const Model::CreateStoreImageTaskRequest& request) const;
6706 
6707         /**
6708          * <p>Stores an AMI as a single object in an Amazon S3 bucket.</p> <p>To use this
6709          * API, you must have the required permissions. For more information, see <a
6710          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-store-restore.html#ami-s3-permissions">Permissions
6711          * for storing and restoring AMIs using Amazon S3</a> in the <i>Amazon Elastic
6712          * Compute Cloud User Guide</i>.</p> <p>For more information, see <a
6713          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-store-restore.html">Store
6714          * and restore an AMI using Amazon S3</a> in the <i>Amazon Elastic Compute Cloud
6715          * User Guide</i>.</p><p><h3>See Also:</h3>   <a
6716          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateStoreImageTask">AWS
6717          * API Reference</a></p>
6718          *
6719          * returns a future to the operation so that it can be executed in parallel to other requests.
6720          */
6721         virtual Model::CreateStoreImageTaskOutcomeCallable CreateStoreImageTaskCallable(const Model::CreateStoreImageTaskRequest& request) const;
6722 
6723         /**
6724          * <p>Stores an AMI as a single object in an Amazon S3 bucket.</p> <p>To use this
6725          * API, you must have the required permissions. For more information, see <a
6726          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-store-restore.html#ami-s3-permissions">Permissions
6727          * for storing and restoring AMIs using Amazon S3</a> in the <i>Amazon Elastic
6728          * Compute Cloud User Guide</i>.</p> <p>For more information, see <a
6729          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-store-restore.html">Store
6730          * and restore an AMI using Amazon S3</a> in the <i>Amazon Elastic Compute Cloud
6731          * User Guide</i>.</p><p><h3>See Also:</h3>   <a
6732          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateStoreImageTask">AWS
6733          * API Reference</a></p>
6734          *
6735          * Queues the request into a thread executor and triggers associated callback when operation has finished.
6736          */
6737         virtual void CreateStoreImageTaskAsync(const Model::CreateStoreImageTaskRequest& request, const CreateStoreImageTaskResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
6738 
6739         /**
6740          * <p>Creates a subnet in a specified VPC.</p> <p>You must specify an IPv4 CIDR
6741          * block for the subnet. After you create a subnet, you can't change its CIDR
6742          * block. The allowed block size is between a /16 netmask (65,536 IP addresses) and
6743          * /28 netmask (16 IP addresses). The CIDR block must not overlap with the CIDR
6744          * block of an existing subnet in the VPC.</p> <p>If you've associated an IPv6 CIDR
6745          * block with your VPC, you can create a subnet with an IPv6 CIDR block that uses a
6746          * /64 prefix length. </p>  <p>Amazon Web Services reserves both the
6747          * first four and the last IPv4 address in each subnet's CIDR block. They're not
6748          * available for use.</p>  <p>If you add more than one subnet to a VPC,
6749          * they're set up in a star topology with a logical router in the middle.</p>
6750          * <p>When you stop an instance in a subnet, it retains its private IPv4 address.
6751          * It's therefore possible to have a subnet with no running instances (they're all
6752          * stopped), but no remaining IP addresses available.</p> <p>For more information
6753          * about subnets, see <a
6754          * href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html">Your
6755          * VPC and subnets</a> in the <i>Amazon Virtual Private Cloud User
6756          * Guide</i>.</p><p><h3>See Also:</h3>   <a
6757          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateSubnet">AWS
6758          * API Reference</a></p>
6759          */
6760         virtual Model::CreateSubnetOutcome CreateSubnet(const Model::CreateSubnetRequest& request) const;
6761 
6762         /**
6763          * <p>Creates a subnet in a specified VPC.</p> <p>You must specify an IPv4 CIDR
6764          * block for the subnet. After you create a subnet, you can't change its CIDR
6765          * block. The allowed block size is between a /16 netmask (65,536 IP addresses) and
6766          * /28 netmask (16 IP addresses). The CIDR block must not overlap with the CIDR
6767          * block of an existing subnet in the VPC.</p> <p>If you've associated an IPv6 CIDR
6768          * block with your VPC, you can create a subnet with an IPv6 CIDR block that uses a
6769          * /64 prefix length. </p>  <p>Amazon Web Services reserves both the
6770          * first four and the last IPv4 address in each subnet's CIDR block. They're not
6771          * available for use.</p>  <p>If you add more than one subnet to a VPC,
6772          * they're set up in a star topology with a logical router in the middle.</p>
6773          * <p>When you stop an instance in a subnet, it retains its private IPv4 address.
6774          * It's therefore possible to have a subnet with no running instances (they're all
6775          * stopped), but no remaining IP addresses available.</p> <p>For more information
6776          * about subnets, see <a
6777          * href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html">Your
6778          * VPC and subnets</a> in the <i>Amazon Virtual Private Cloud User
6779          * Guide</i>.</p><p><h3>See Also:</h3>   <a
6780          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateSubnet">AWS
6781          * API Reference</a></p>
6782          *
6783          * returns a future to the operation so that it can be executed in parallel to other requests.
6784          */
6785         virtual Model::CreateSubnetOutcomeCallable CreateSubnetCallable(const Model::CreateSubnetRequest& request) const;
6786 
6787         /**
6788          * <p>Creates a subnet in a specified VPC.</p> <p>You must specify an IPv4 CIDR
6789          * block for the subnet. After you create a subnet, you can't change its CIDR
6790          * block. The allowed block size is between a /16 netmask (65,536 IP addresses) and
6791          * /28 netmask (16 IP addresses). The CIDR block must not overlap with the CIDR
6792          * block of an existing subnet in the VPC.</p> <p>If you've associated an IPv6 CIDR
6793          * block with your VPC, you can create a subnet with an IPv6 CIDR block that uses a
6794          * /64 prefix length. </p>  <p>Amazon Web Services reserves both the
6795          * first four and the last IPv4 address in each subnet's CIDR block. They're not
6796          * available for use.</p>  <p>If you add more than one subnet to a VPC,
6797          * they're set up in a star topology with a logical router in the middle.</p>
6798          * <p>When you stop an instance in a subnet, it retains its private IPv4 address.
6799          * It's therefore possible to have a subnet with no running instances (they're all
6800          * stopped), but no remaining IP addresses available.</p> <p>For more information
6801          * about subnets, see <a
6802          * href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html">Your
6803          * VPC and subnets</a> in the <i>Amazon Virtual Private Cloud User
6804          * Guide</i>.</p><p><h3>See Also:</h3>   <a
6805          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateSubnet">AWS
6806          * API Reference</a></p>
6807          *
6808          * Queues the request into a thread executor and triggers associated callback when operation has finished.
6809          */
6810         virtual void CreateSubnetAsync(const Model::CreateSubnetRequest& request, const CreateSubnetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
6811 
6812         /**
6813          * <p>Creates a subnet CIDR reservation. For information about subnet CIDR
6814          * reservations, see <a
6815          * href="https://docs.aws.amazon.com/vpc/latest/userguide/subnet-cidr-reservation.html">Subnet
6816          * CIDR reservations</a> in the <i>Amazon Virtual Private Cloud User
6817          * Guide</i>.</p><p><h3>See Also:</h3>   <a
6818          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateSubnetCidrReservation">AWS
6819          * API Reference</a></p>
6820          */
6821         virtual Model::CreateSubnetCidrReservationOutcome CreateSubnetCidrReservation(const Model::CreateSubnetCidrReservationRequest& request) const;
6822 
6823         /**
6824          * <p>Creates a subnet CIDR reservation. For information about subnet CIDR
6825          * reservations, see <a
6826          * href="https://docs.aws.amazon.com/vpc/latest/userguide/subnet-cidr-reservation.html">Subnet
6827          * CIDR reservations</a> in the <i>Amazon Virtual Private Cloud User
6828          * Guide</i>.</p><p><h3>See Also:</h3>   <a
6829          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateSubnetCidrReservation">AWS
6830          * API Reference</a></p>
6831          *
6832          * returns a future to the operation so that it can be executed in parallel to other requests.
6833          */
6834         virtual Model::CreateSubnetCidrReservationOutcomeCallable CreateSubnetCidrReservationCallable(const Model::CreateSubnetCidrReservationRequest& request) const;
6835 
6836         /**
6837          * <p>Creates a subnet CIDR reservation. For information about subnet CIDR
6838          * reservations, see <a
6839          * href="https://docs.aws.amazon.com/vpc/latest/userguide/subnet-cidr-reservation.html">Subnet
6840          * CIDR reservations</a> in the <i>Amazon Virtual Private Cloud User
6841          * Guide</i>.</p><p><h3>See Also:</h3>   <a
6842          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateSubnetCidrReservation">AWS
6843          * API Reference</a></p>
6844          *
6845          * Queues the request into a thread executor and triggers associated callback when operation has finished.
6846          */
6847         virtual void CreateSubnetCidrReservationAsync(const Model::CreateSubnetCidrReservationRequest& request, const CreateSubnetCidrReservationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
6848 
6849         /**
6850          * <p>Adds or overwrites only the specified tags for the specified Amazon EC2
6851          * resource or resources. When you specify an existing tag key, the value is
6852          * overwritten with the new value. Each resource can have a maximum of 50 tags.
6853          * Each tag consists of a key and optional value. Tag keys must be unique per
6854          * resource.</p> <p>For more information about tags, see <a
6855          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html">Tagging
6856          * Your Resources</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>. For
6857          * more information about creating IAM policies that control users' access to
6858          * resources based on tags, see <a
6859          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-supported-iam-actions-resources.html">Supported
6860          * Resource-Level Permissions for Amazon EC2 API Actions</a> in the <i>Amazon
6861          * Elastic Compute Cloud User Guide</i>.</p><p><h3>See Also:</h3>   <a
6862          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateTags">AWS API
6863          * Reference</a></p>
6864          */
6865         virtual Model::CreateTagsOutcome CreateTags(const Model::CreateTagsRequest& request) const;
6866 
6867         /**
6868          * <p>Adds or overwrites only the specified tags for the specified Amazon EC2
6869          * resource or resources. When you specify an existing tag key, the value is
6870          * overwritten with the new value. Each resource can have a maximum of 50 tags.
6871          * Each tag consists of a key and optional value. Tag keys must be unique per
6872          * resource.</p> <p>For more information about tags, see <a
6873          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html">Tagging
6874          * Your Resources</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>. For
6875          * more information about creating IAM policies that control users' access to
6876          * resources based on tags, see <a
6877          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-supported-iam-actions-resources.html">Supported
6878          * Resource-Level Permissions for Amazon EC2 API Actions</a> in the <i>Amazon
6879          * Elastic Compute Cloud User Guide</i>.</p><p><h3>See Also:</h3>   <a
6880          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateTags">AWS API
6881          * Reference</a></p>
6882          *
6883          * returns a future to the operation so that it can be executed in parallel to other requests.
6884          */
6885         virtual Model::CreateTagsOutcomeCallable CreateTagsCallable(const Model::CreateTagsRequest& request) const;
6886 
6887         /**
6888          * <p>Adds or overwrites only the specified tags for the specified Amazon EC2
6889          * resource or resources. When you specify an existing tag key, the value is
6890          * overwritten with the new value. Each resource can have a maximum of 50 tags.
6891          * Each tag consists of a key and optional value. Tag keys must be unique per
6892          * resource.</p> <p>For more information about tags, see <a
6893          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html">Tagging
6894          * Your Resources</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>. For
6895          * more information about creating IAM policies that control users' access to
6896          * resources based on tags, see <a
6897          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-supported-iam-actions-resources.html">Supported
6898          * Resource-Level Permissions for Amazon EC2 API Actions</a> in the <i>Amazon
6899          * Elastic Compute Cloud User Guide</i>.</p><p><h3>See Also:</h3>   <a
6900          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateTags">AWS API
6901          * Reference</a></p>
6902          *
6903          * Queues the request into a thread executor and triggers associated callback when operation has finished.
6904          */
6905         virtual void CreateTagsAsync(const Model::CreateTagsRequest& request, const CreateTagsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
6906 
6907         /**
6908          * <p>Creates a Traffic Mirror filter.</p> <p>A Traffic Mirror filter is a set of
6909          * rules that defines the traffic to mirror.</p> <p>By default, no traffic is
6910          * mirrored. To mirror traffic, use <a
6911          * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTrafficMirrorFilterRule.htm">CreateTrafficMirrorFilterRule</a>
6912          * to add Traffic Mirror rules to the filter. The rules you add define what traffic
6913          * gets mirrored. You can also use <a
6914          * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyTrafficMirrorFilterNetworkServices.html">ModifyTrafficMirrorFilterNetworkServices</a>
6915          * to mirror supported network services.</p><p><h3>See Also:</h3>   <a
6916          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateTrafficMirrorFilter">AWS
6917          * API Reference</a></p>
6918          */
6919         virtual Model::CreateTrafficMirrorFilterOutcome CreateTrafficMirrorFilter(const Model::CreateTrafficMirrorFilterRequest& request) const;
6920 
6921         /**
6922          * <p>Creates a Traffic Mirror filter.</p> <p>A Traffic Mirror filter is a set of
6923          * rules that defines the traffic to mirror.</p> <p>By default, no traffic is
6924          * mirrored. To mirror traffic, use <a
6925          * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTrafficMirrorFilterRule.htm">CreateTrafficMirrorFilterRule</a>
6926          * to add Traffic Mirror rules to the filter. The rules you add define what traffic
6927          * gets mirrored. You can also use <a
6928          * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyTrafficMirrorFilterNetworkServices.html">ModifyTrafficMirrorFilterNetworkServices</a>
6929          * to mirror supported network services.</p><p><h3>See Also:</h3>   <a
6930          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateTrafficMirrorFilter">AWS
6931          * API Reference</a></p>
6932          *
6933          * returns a future to the operation so that it can be executed in parallel to other requests.
6934          */
6935         virtual Model::CreateTrafficMirrorFilterOutcomeCallable CreateTrafficMirrorFilterCallable(const Model::CreateTrafficMirrorFilterRequest& request) const;
6936 
6937         /**
6938          * <p>Creates a Traffic Mirror filter.</p> <p>A Traffic Mirror filter is a set of
6939          * rules that defines the traffic to mirror.</p> <p>By default, no traffic is
6940          * mirrored. To mirror traffic, use <a
6941          * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTrafficMirrorFilterRule.htm">CreateTrafficMirrorFilterRule</a>
6942          * to add Traffic Mirror rules to the filter. The rules you add define what traffic
6943          * gets mirrored. You can also use <a
6944          * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyTrafficMirrorFilterNetworkServices.html">ModifyTrafficMirrorFilterNetworkServices</a>
6945          * to mirror supported network services.</p><p><h3>See Also:</h3>   <a
6946          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateTrafficMirrorFilter">AWS
6947          * API Reference</a></p>
6948          *
6949          * Queues the request into a thread executor and triggers associated callback when operation has finished.
6950          */
6951         virtual void CreateTrafficMirrorFilterAsync(const Model::CreateTrafficMirrorFilterRequest& request, const CreateTrafficMirrorFilterResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
6952 
6953         /**
6954          * <p>Creates a Traffic Mirror filter rule.</p> <p>A Traffic Mirror rule defines
6955          * the Traffic Mirror source traffic to mirror.</p> <p>You need the Traffic Mirror
6956          * filter ID when you create the rule.</p><p><h3>See Also:</h3>   <a
6957          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateTrafficMirrorFilterRule">AWS
6958          * API Reference</a></p>
6959          */
6960         virtual Model::CreateTrafficMirrorFilterRuleOutcome CreateTrafficMirrorFilterRule(const Model::CreateTrafficMirrorFilterRuleRequest& request) const;
6961 
6962         /**
6963          * <p>Creates a Traffic Mirror filter rule.</p> <p>A Traffic Mirror rule defines
6964          * the Traffic Mirror source traffic to mirror.</p> <p>You need the Traffic Mirror
6965          * filter ID when you create the rule.</p><p><h3>See Also:</h3>   <a
6966          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateTrafficMirrorFilterRule">AWS
6967          * API Reference</a></p>
6968          *
6969          * returns a future to the operation so that it can be executed in parallel to other requests.
6970          */
6971         virtual Model::CreateTrafficMirrorFilterRuleOutcomeCallable CreateTrafficMirrorFilterRuleCallable(const Model::CreateTrafficMirrorFilterRuleRequest& request) const;
6972 
6973         /**
6974          * <p>Creates a Traffic Mirror filter rule.</p> <p>A Traffic Mirror rule defines
6975          * the Traffic Mirror source traffic to mirror.</p> <p>You need the Traffic Mirror
6976          * filter ID when you create the rule.</p><p><h3>See Also:</h3>   <a
6977          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateTrafficMirrorFilterRule">AWS
6978          * API Reference</a></p>
6979          *
6980          * Queues the request into a thread executor and triggers associated callback when operation has finished.
6981          */
6982         virtual void CreateTrafficMirrorFilterRuleAsync(const Model::CreateTrafficMirrorFilterRuleRequest& request, const CreateTrafficMirrorFilterRuleResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
6983 
6984         /**
6985          * <p>Creates a Traffic Mirror session.</p> <p>A Traffic Mirror session actively
6986          * copies packets from a Traffic Mirror source to a Traffic Mirror target. Create a
6987          * filter, and then assign it to the session to define a subset of the traffic to
6988          * mirror, for example all TCP traffic.</p> <p>The Traffic Mirror source and the
6989          * Traffic Mirror target (monitoring appliances) can be in the same VPC, or in a
6990          * different VPC connected via VPC peering or a transit gateway. </p> <p>By
6991          * default, no traffic is mirrored. Use <a
6992          * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTrafficMirrorFilter.htm">CreateTrafficMirrorFilter</a>
6993          * to create filter rules that specify the traffic to mirror.</p><p><h3>See
6994          * Also:</h3>   <a
6995          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateTrafficMirrorSession">AWS
6996          * API Reference</a></p>
6997          */
6998         virtual Model::CreateTrafficMirrorSessionOutcome CreateTrafficMirrorSession(const Model::CreateTrafficMirrorSessionRequest& request) const;
6999 
7000         /**
7001          * <p>Creates a Traffic Mirror session.</p> <p>A Traffic Mirror session actively
7002          * copies packets from a Traffic Mirror source to a Traffic Mirror target. Create a
7003          * filter, and then assign it to the session to define a subset of the traffic to
7004          * mirror, for example all TCP traffic.</p> <p>The Traffic Mirror source and the
7005          * Traffic Mirror target (monitoring appliances) can be in the same VPC, or in a
7006          * different VPC connected via VPC peering or a transit gateway. </p> <p>By
7007          * default, no traffic is mirrored. Use <a
7008          * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTrafficMirrorFilter.htm">CreateTrafficMirrorFilter</a>
7009          * to create filter rules that specify the traffic to mirror.</p><p><h3>See
7010          * Also:</h3>   <a
7011          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateTrafficMirrorSession">AWS
7012          * API Reference</a></p>
7013          *
7014          * returns a future to the operation so that it can be executed in parallel to other requests.
7015          */
7016         virtual Model::CreateTrafficMirrorSessionOutcomeCallable CreateTrafficMirrorSessionCallable(const Model::CreateTrafficMirrorSessionRequest& request) const;
7017 
7018         /**
7019          * <p>Creates a Traffic Mirror session.</p> <p>A Traffic Mirror session actively
7020          * copies packets from a Traffic Mirror source to a Traffic Mirror target. Create a
7021          * filter, and then assign it to the session to define a subset of the traffic to
7022          * mirror, for example all TCP traffic.</p> <p>The Traffic Mirror source and the
7023          * Traffic Mirror target (monitoring appliances) can be in the same VPC, or in a
7024          * different VPC connected via VPC peering or a transit gateway. </p> <p>By
7025          * default, no traffic is mirrored. Use <a
7026          * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTrafficMirrorFilter.htm">CreateTrafficMirrorFilter</a>
7027          * to create filter rules that specify the traffic to mirror.</p><p><h3>See
7028          * Also:</h3>   <a
7029          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateTrafficMirrorSession">AWS
7030          * API Reference</a></p>
7031          *
7032          * Queues the request into a thread executor and triggers associated callback when operation has finished.
7033          */
7034         virtual void CreateTrafficMirrorSessionAsync(const Model::CreateTrafficMirrorSessionRequest& request, const CreateTrafficMirrorSessionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
7035 
7036         /**
7037          * <p>Creates a target for your Traffic Mirror session.</p> <p>A Traffic Mirror
7038          * target is the destination for mirrored traffic. The Traffic Mirror source and
7039          * the Traffic Mirror target (monitoring appliances) can be in the same VPC, or in
7040          * different VPCs connected via VPC peering or a transit gateway.</p> <p>A Traffic
7041          * Mirror target can be a network interface, or a Network Load Balancer.</p> <p>To
7042          * use the target in a Traffic Mirror session, use <a
7043          * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTrafficMirrorSession.htm">CreateTrafficMirrorSession</a>.</p><p><h3>See
7044          * Also:</h3>   <a
7045          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateTrafficMirrorTarget">AWS
7046          * API Reference</a></p>
7047          */
7048         virtual Model::CreateTrafficMirrorTargetOutcome CreateTrafficMirrorTarget(const Model::CreateTrafficMirrorTargetRequest& request) const;
7049 
7050         /**
7051          * <p>Creates a target for your Traffic Mirror session.</p> <p>A Traffic Mirror
7052          * target is the destination for mirrored traffic. The Traffic Mirror source and
7053          * the Traffic Mirror target (monitoring appliances) can be in the same VPC, or in
7054          * different VPCs connected via VPC peering or a transit gateway.</p> <p>A Traffic
7055          * Mirror target can be a network interface, or a Network Load Balancer.</p> <p>To
7056          * use the target in a Traffic Mirror session, use <a
7057          * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTrafficMirrorSession.htm">CreateTrafficMirrorSession</a>.</p><p><h3>See
7058          * Also:</h3>   <a
7059          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateTrafficMirrorTarget">AWS
7060          * API Reference</a></p>
7061          *
7062          * returns a future to the operation so that it can be executed in parallel to other requests.
7063          */
7064         virtual Model::CreateTrafficMirrorTargetOutcomeCallable CreateTrafficMirrorTargetCallable(const Model::CreateTrafficMirrorTargetRequest& request) const;
7065 
7066         /**
7067          * <p>Creates a target for your Traffic Mirror session.</p> <p>A Traffic Mirror
7068          * target is the destination for mirrored traffic. The Traffic Mirror source and
7069          * the Traffic Mirror target (monitoring appliances) can be in the same VPC, or in
7070          * different VPCs connected via VPC peering or a transit gateway.</p> <p>A Traffic
7071          * Mirror target can be a network interface, or a Network Load Balancer.</p> <p>To
7072          * use the target in a Traffic Mirror session, use <a
7073          * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTrafficMirrorSession.htm">CreateTrafficMirrorSession</a>.</p><p><h3>See
7074          * Also:</h3>   <a
7075          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateTrafficMirrorTarget">AWS
7076          * API Reference</a></p>
7077          *
7078          * Queues the request into a thread executor and triggers associated callback when operation has finished.
7079          */
7080         virtual void CreateTrafficMirrorTargetAsync(const Model::CreateTrafficMirrorTargetRequest& request, const CreateTrafficMirrorTargetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
7081 
7082         /**
7083          * <p>Creates a transit gateway.</p> <p>You can use a transit gateway to
7084          * interconnect your virtual private clouds (VPC) and on-premises networks. After
7085          * the transit gateway enters the <code>available</code> state, you can attach your
7086          * VPCs and VPN connections to the transit gateway.</p> <p>To attach your VPCs, use
7087          * <a>CreateTransitGatewayVpcAttachment</a>.</p> <p>To attach a VPN connection, use
7088          * <a>CreateCustomerGateway</a> to create a customer gateway and specify the ID of
7089          * the customer gateway and the ID of the transit gateway in a call to
7090          * <a>CreateVpnConnection</a>.</p> <p>When you create a transit gateway, we create
7091          * a default transit gateway route table and use it as the default association
7092          * route table and the default propagation route table. You can use
7093          * <a>CreateTransitGatewayRouteTable</a> to create additional transit gateway route
7094          * tables. If you disable automatic route propagation, we do not create a default
7095          * transit gateway route table. You can use
7096          * <a>EnableTransitGatewayRouteTablePropagation</a> to propagate routes from a
7097          * resource attachment to a transit gateway route table. If you disable automatic
7098          * associations, you can use <a>AssociateTransitGatewayRouteTable</a> to associate
7099          * a resource attachment with a transit gateway route table.</p><p><h3>See
7100          * Also:</h3>   <a
7101          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateTransitGateway">AWS
7102          * API Reference</a></p>
7103          */
7104         virtual Model::CreateTransitGatewayOutcome CreateTransitGateway(const Model::CreateTransitGatewayRequest& request) const;
7105 
7106         /**
7107          * <p>Creates a transit gateway.</p> <p>You can use a transit gateway to
7108          * interconnect your virtual private clouds (VPC) and on-premises networks. After
7109          * the transit gateway enters the <code>available</code> state, you can attach your
7110          * VPCs and VPN connections to the transit gateway.</p> <p>To attach your VPCs, use
7111          * <a>CreateTransitGatewayVpcAttachment</a>.</p> <p>To attach a VPN connection, use
7112          * <a>CreateCustomerGateway</a> to create a customer gateway and specify the ID of
7113          * the customer gateway and the ID of the transit gateway in a call to
7114          * <a>CreateVpnConnection</a>.</p> <p>When you create a transit gateway, we create
7115          * a default transit gateway route table and use it as the default association
7116          * route table and the default propagation route table. You can use
7117          * <a>CreateTransitGatewayRouteTable</a> to create additional transit gateway route
7118          * tables. If you disable automatic route propagation, we do not create a default
7119          * transit gateway route table. You can use
7120          * <a>EnableTransitGatewayRouteTablePropagation</a> to propagate routes from a
7121          * resource attachment to a transit gateway route table. If you disable automatic
7122          * associations, you can use <a>AssociateTransitGatewayRouteTable</a> to associate
7123          * a resource attachment with a transit gateway route table.</p><p><h3>See
7124          * Also:</h3>   <a
7125          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateTransitGateway">AWS
7126          * API Reference</a></p>
7127          *
7128          * returns a future to the operation so that it can be executed in parallel to other requests.
7129          */
7130         virtual Model::CreateTransitGatewayOutcomeCallable CreateTransitGatewayCallable(const Model::CreateTransitGatewayRequest& request) const;
7131 
7132         /**
7133          * <p>Creates a transit gateway.</p> <p>You can use a transit gateway to
7134          * interconnect your virtual private clouds (VPC) and on-premises networks. After
7135          * the transit gateway enters the <code>available</code> state, you can attach your
7136          * VPCs and VPN connections to the transit gateway.</p> <p>To attach your VPCs, use
7137          * <a>CreateTransitGatewayVpcAttachment</a>.</p> <p>To attach a VPN connection, use
7138          * <a>CreateCustomerGateway</a> to create a customer gateway and specify the ID of
7139          * the customer gateway and the ID of the transit gateway in a call to
7140          * <a>CreateVpnConnection</a>.</p> <p>When you create a transit gateway, we create
7141          * a default transit gateway route table and use it as the default association
7142          * route table and the default propagation route table. You can use
7143          * <a>CreateTransitGatewayRouteTable</a> to create additional transit gateway route
7144          * tables. If you disable automatic route propagation, we do not create a default
7145          * transit gateway route table. You can use
7146          * <a>EnableTransitGatewayRouteTablePropagation</a> to propagate routes from a
7147          * resource attachment to a transit gateway route table. If you disable automatic
7148          * associations, you can use <a>AssociateTransitGatewayRouteTable</a> to associate
7149          * a resource attachment with a transit gateway route table.</p><p><h3>See
7150          * Also:</h3>   <a
7151          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateTransitGateway">AWS
7152          * API Reference</a></p>
7153          *
7154          * Queues the request into a thread executor and triggers associated callback when operation has finished.
7155          */
7156         virtual void CreateTransitGatewayAsync(const Model::CreateTransitGatewayRequest& request, const CreateTransitGatewayResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
7157 
7158         /**
7159          * <p>Creates a Connect attachment from a specified transit gateway attachment. A
7160          * Connect attachment is a GRE-based tunnel attachment that you can use to
7161          * establish a connection between a transit gateway and an appliance.</p> <p>A
7162          * Connect attachment uses an existing VPC or Amazon Web Services Direct Connect
7163          * attachment as the underlying transport mechanism.</p><p><h3>See Also:</h3>   <a
7164          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateTransitGatewayConnect">AWS
7165          * API Reference</a></p>
7166          */
7167         virtual Model::CreateTransitGatewayConnectOutcome CreateTransitGatewayConnect(const Model::CreateTransitGatewayConnectRequest& request) const;
7168 
7169         /**
7170          * <p>Creates a Connect attachment from a specified transit gateway attachment. A
7171          * Connect attachment is a GRE-based tunnel attachment that you can use to
7172          * establish a connection between a transit gateway and an appliance.</p> <p>A
7173          * Connect attachment uses an existing VPC or Amazon Web Services Direct Connect
7174          * attachment as the underlying transport mechanism.</p><p><h3>See Also:</h3>   <a
7175          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateTransitGatewayConnect">AWS
7176          * API Reference</a></p>
7177          *
7178          * returns a future to the operation so that it can be executed in parallel to other requests.
7179          */
7180         virtual Model::CreateTransitGatewayConnectOutcomeCallable CreateTransitGatewayConnectCallable(const Model::CreateTransitGatewayConnectRequest& request) const;
7181 
7182         /**
7183          * <p>Creates a Connect attachment from a specified transit gateway attachment. A
7184          * Connect attachment is a GRE-based tunnel attachment that you can use to
7185          * establish a connection between a transit gateway and an appliance.</p> <p>A
7186          * Connect attachment uses an existing VPC or Amazon Web Services Direct Connect
7187          * attachment as the underlying transport mechanism.</p><p><h3>See Also:</h3>   <a
7188          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateTransitGatewayConnect">AWS
7189          * API Reference</a></p>
7190          *
7191          * Queues the request into a thread executor and triggers associated callback when operation has finished.
7192          */
7193         virtual void CreateTransitGatewayConnectAsync(const Model::CreateTransitGatewayConnectRequest& request, const CreateTransitGatewayConnectResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
7194 
7195         /**
7196          * <p>Creates a Connect peer for a specified transit gateway Connect attachment
7197          * between a transit gateway and an appliance.</p> <p>The peer address and transit
7198          * gateway address must be the same IP address family (IPv4 or IPv6).</p> <p>For
7199          * more information, see <a
7200          * href="https://docs.aws.amazon.com/vpc/latest/tgw/tgw-connect.html#tgw-connect-peer">Connect
7201          * peers</a> in the <i>Transit Gateways Guide</i>.</p><p><h3>See Also:</h3>   <a
7202          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateTransitGatewayConnectPeer">AWS
7203          * API Reference</a></p>
7204          */
7205         virtual Model::CreateTransitGatewayConnectPeerOutcome CreateTransitGatewayConnectPeer(const Model::CreateTransitGatewayConnectPeerRequest& request) const;
7206 
7207         /**
7208          * <p>Creates a Connect peer for a specified transit gateway Connect attachment
7209          * between a transit gateway and an appliance.</p> <p>The peer address and transit
7210          * gateway address must be the same IP address family (IPv4 or IPv6).</p> <p>For
7211          * more information, see <a
7212          * href="https://docs.aws.amazon.com/vpc/latest/tgw/tgw-connect.html#tgw-connect-peer">Connect
7213          * peers</a> in the <i>Transit Gateways Guide</i>.</p><p><h3>See Also:</h3>   <a
7214          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateTransitGatewayConnectPeer">AWS
7215          * API Reference</a></p>
7216          *
7217          * returns a future to the operation so that it can be executed in parallel to other requests.
7218          */
7219         virtual Model::CreateTransitGatewayConnectPeerOutcomeCallable CreateTransitGatewayConnectPeerCallable(const Model::CreateTransitGatewayConnectPeerRequest& request) const;
7220 
7221         /**
7222          * <p>Creates a Connect peer for a specified transit gateway Connect attachment
7223          * between a transit gateway and an appliance.</p> <p>The peer address and transit
7224          * gateway address must be the same IP address family (IPv4 or IPv6).</p> <p>For
7225          * more information, see <a
7226          * href="https://docs.aws.amazon.com/vpc/latest/tgw/tgw-connect.html#tgw-connect-peer">Connect
7227          * peers</a> in the <i>Transit Gateways Guide</i>.</p><p><h3>See Also:</h3>   <a
7228          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateTransitGatewayConnectPeer">AWS
7229          * API Reference</a></p>
7230          *
7231          * Queues the request into a thread executor and triggers associated callback when operation has finished.
7232          */
7233         virtual void CreateTransitGatewayConnectPeerAsync(const Model::CreateTransitGatewayConnectPeerRequest& request, const CreateTransitGatewayConnectPeerResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
7234 
7235         /**
7236          * <p>Creates a multicast domain using the specified transit gateway.</p> <p>The
7237          * transit gateway must be in the available state before you create a domain. Use
7238          * <a
7239          * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeTransitGateways.html">DescribeTransitGateways</a>
7240          * to see the state of transit gateway.</p><p><h3>See Also:</h3>   <a
7241          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateTransitGatewayMulticastDomain">AWS
7242          * API Reference</a></p>
7243          */
7244         virtual Model::CreateTransitGatewayMulticastDomainOutcome CreateTransitGatewayMulticastDomain(const Model::CreateTransitGatewayMulticastDomainRequest& request) const;
7245 
7246         /**
7247          * <p>Creates a multicast domain using the specified transit gateway.</p> <p>The
7248          * transit gateway must be in the available state before you create a domain. Use
7249          * <a
7250          * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeTransitGateways.html">DescribeTransitGateways</a>
7251          * to see the state of transit gateway.</p><p><h3>See Also:</h3>   <a
7252          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateTransitGatewayMulticastDomain">AWS
7253          * API Reference</a></p>
7254          *
7255          * returns a future to the operation so that it can be executed in parallel to other requests.
7256          */
7257         virtual Model::CreateTransitGatewayMulticastDomainOutcomeCallable CreateTransitGatewayMulticastDomainCallable(const Model::CreateTransitGatewayMulticastDomainRequest& request) const;
7258 
7259         /**
7260          * <p>Creates a multicast domain using the specified transit gateway.</p> <p>The
7261          * transit gateway must be in the available state before you create a domain. Use
7262          * <a
7263          * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeTransitGateways.html">DescribeTransitGateways</a>
7264          * to see the state of transit gateway.</p><p><h3>See Also:</h3>   <a
7265          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateTransitGatewayMulticastDomain">AWS
7266          * API Reference</a></p>
7267          *
7268          * Queues the request into a thread executor and triggers associated callback when operation has finished.
7269          */
7270         virtual void CreateTransitGatewayMulticastDomainAsync(const Model::CreateTransitGatewayMulticastDomainRequest& request, const CreateTransitGatewayMulticastDomainResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
7271 
7272         /**
7273          * <p>Requests a transit gateway peering attachment between the specified transit
7274          * gateway (requester) and a peer transit gateway (accepter). The transit gateways
7275          * must be in different Regions. The peer transit gateway can be in your account or
7276          * a different Amazon Web Services account.</p> <p>After you create the peering
7277          * attachment, the owner of the accepter transit gateway must accept the attachment
7278          * request.</p><p><h3>See Also:</h3>   <a
7279          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateTransitGatewayPeeringAttachment">AWS
7280          * API Reference</a></p>
7281          */
7282         virtual Model::CreateTransitGatewayPeeringAttachmentOutcome CreateTransitGatewayPeeringAttachment(const Model::CreateTransitGatewayPeeringAttachmentRequest& request) const;
7283 
7284         /**
7285          * <p>Requests a transit gateway peering attachment between the specified transit
7286          * gateway (requester) and a peer transit gateway (accepter). The transit gateways
7287          * must be in different Regions. The peer transit gateway can be in your account or
7288          * a different Amazon Web Services account.</p> <p>After you create the peering
7289          * attachment, the owner of the accepter transit gateway must accept the attachment
7290          * request.</p><p><h3>See Also:</h3>   <a
7291          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateTransitGatewayPeeringAttachment">AWS
7292          * API Reference</a></p>
7293          *
7294          * returns a future to the operation so that it can be executed in parallel to other requests.
7295          */
7296         virtual Model::CreateTransitGatewayPeeringAttachmentOutcomeCallable CreateTransitGatewayPeeringAttachmentCallable(const Model::CreateTransitGatewayPeeringAttachmentRequest& request) const;
7297 
7298         /**
7299          * <p>Requests a transit gateway peering attachment between the specified transit
7300          * gateway (requester) and a peer transit gateway (accepter). The transit gateways
7301          * must be in different Regions. The peer transit gateway can be in your account or
7302          * a different Amazon Web Services account.</p> <p>After you create the peering
7303          * attachment, the owner of the accepter transit gateway must accept the attachment
7304          * request.</p><p><h3>See Also:</h3>   <a
7305          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateTransitGatewayPeeringAttachment">AWS
7306          * API Reference</a></p>
7307          *
7308          * Queues the request into a thread executor and triggers associated callback when operation has finished.
7309          */
7310         virtual void CreateTransitGatewayPeeringAttachmentAsync(const Model::CreateTransitGatewayPeeringAttachmentRequest& request, const CreateTransitGatewayPeeringAttachmentResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
7311 
7312         /**
7313          * <p>Creates a reference (route) to a prefix list in a specified transit gateway
7314          * route table.</p><p><h3>See Also:</h3>   <a
7315          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateTransitGatewayPrefixListReference">AWS
7316          * API Reference</a></p>
7317          */
7318         virtual Model::CreateTransitGatewayPrefixListReferenceOutcome CreateTransitGatewayPrefixListReference(const Model::CreateTransitGatewayPrefixListReferenceRequest& request) const;
7319 
7320         /**
7321          * <p>Creates a reference (route) to a prefix list in a specified transit gateway
7322          * route table.</p><p><h3>See Also:</h3>   <a
7323          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateTransitGatewayPrefixListReference">AWS
7324          * API Reference</a></p>
7325          *
7326          * returns a future to the operation so that it can be executed in parallel to other requests.
7327          */
7328         virtual Model::CreateTransitGatewayPrefixListReferenceOutcomeCallable CreateTransitGatewayPrefixListReferenceCallable(const Model::CreateTransitGatewayPrefixListReferenceRequest& request) const;
7329 
7330         /**
7331          * <p>Creates a reference (route) to a prefix list in a specified transit gateway
7332          * route table.</p><p><h3>See Also:</h3>   <a
7333          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateTransitGatewayPrefixListReference">AWS
7334          * API Reference</a></p>
7335          *
7336          * Queues the request into a thread executor and triggers associated callback when operation has finished.
7337          */
7338         virtual void CreateTransitGatewayPrefixListReferenceAsync(const Model::CreateTransitGatewayPrefixListReferenceRequest& request, const CreateTransitGatewayPrefixListReferenceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
7339 
7340         /**
7341          * <p>Creates a static route for the specified transit gateway route
7342          * table.</p><p><h3>See Also:</h3>   <a
7343          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateTransitGatewayRoute">AWS
7344          * API Reference</a></p>
7345          */
7346         virtual Model::CreateTransitGatewayRouteOutcome CreateTransitGatewayRoute(const Model::CreateTransitGatewayRouteRequest& request) const;
7347 
7348         /**
7349          * <p>Creates a static route for the specified transit gateway route
7350          * table.</p><p><h3>See Also:</h3>   <a
7351          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateTransitGatewayRoute">AWS
7352          * API Reference</a></p>
7353          *
7354          * returns a future to the operation so that it can be executed in parallel to other requests.
7355          */
7356         virtual Model::CreateTransitGatewayRouteOutcomeCallable CreateTransitGatewayRouteCallable(const Model::CreateTransitGatewayRouteRequest& request) const;
7357 
7358         /**
7359          * <p>Creates a static route for the specified transit gateway route
7360          * table.</p><p><h3>See Also:</h3>   <a
7361          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateTransitGatewayRoute">AWS
7362          * API Reference</a></p>
7363          *
7364          * Queues the request into a thread executor and triggers associated callback when operation has finished.
7365          */
7366         virtual void CreateTransitGatewayRouteAsync(const Model::CreateTransitGatewayRouteRequest& request, const CreateTransitGatewayRouteResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
7367 
7368         /**
7369          * <p>Creates a route table for the specified transit gateway.</p><p><h3>See
7370          * Also:</h3>   <a
7371          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateTransitGatewayRouteTable">AWS
7372          * API Reference</a></p>
7373          */
7374         virtual Model::CreateTransitGatewayRouteTableOutcome CreateTransitGatewayRouteTable(const Model::CreateTransitGatewayRouteTableRequest& request) const;
7375 
7376         /**
7377          * <p>Creates a route table for the specified transit gateway.</p><p><h3>See
7378          * Also:</h3>   <a
7379          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateTransitGatewayRouteTable">AWS
7380          * API Reference</a></p>
7381          *
7382          * returns a future to the operation so that it can be executed in parallel to other requests.
7383          */
7384         virtual Model::CreateTransitGatewayRouteTableOutcomeCallable CreateTransitGatewayRouteTableCallable(const Model::CreateTransitGatewayRouteTableRequest& request) const;
7385 
7386         /**
7387          * <p>Creates a route table for the specified transit gateway.</p><p><h3>See
7388          * Also:</h3>   <a
7389          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateTransitGatewayRouteTable">AWS
7390          * API Reference</a></p>
7391          *
7392          * Queues the request into a thread executor and triggers associated callback when operation has finished.
7393          */
7394         virtual void CreateTransitGatewayRouteTableAsync(const Model::CreateTransitGatewayRouteTableRequest& request, const CreateTransitGatewayRouteTableResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
7395 
7396         /**
7397          * <p>Attaches the specified VPC to the specified transit gateway.</p> <p>If you
7398          * attach a VPC with a CIDR range that overlaps the CIDR range of a VPC that is
7399          * already attached, the new VPC CIDR range is not propagated to the default
7400          * propagation route table.</p> <p>To send VPC traffic to an attached transit
7401          * gateway, add a route to the VPC route table using
7402          * <a>CreateRoute</a>.</p><p><h3>See Also:</h3>   <a
7403          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateTransitGatewayVpcAttachment">AWS
7404          * API Reference</a></p>
7405          */
7406         virtual Model::CreateTransitGatewayVpcAttachmentOutcome CreateTransitGatewayVpcAttachment(const Model::CreateTransitGatewayVpcAttachmentRequest& request) const;
7407 
7408         /**
7409          * <p>Attaches the specified VPC to the specified transit gateway.</p> <p>If you
7410          * attach a VPC with a CIDR range that overlaps the CIDR range of a VPC that is
7411          * already attached, the new VPC CIDR range is not propagated to the default
7412          * propagation route table.</p> <p>To send VPC traffic to an attached transit
7413          * gateway, add a route to the VPC route table using
7414          * <a>CreateRoute</a>.</p><p><h3>See Also:</h3>   <a
7415          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateTransitGatewayVpcAttachment">AWS
7416          * API Reference</a></p>
7417          *
7418          * returns a future to the operation so that it can be executed in parallel to other requests.
7419          */
7420         virtual Model::CreateTransitGatewayVpcAttachmentOutcomeCallable CreateTransitGatewayVpcAttachmentCallable(const Model::CreateTransitGatewayVpcAttachmentRequest& request) const;
7421 
7422         /**
7423          * <p>Attaches the specified VPC to the specified transit gateway.</p> <p>If you
7424          * attach a VPC with a CIDR range that overlaps the CIDR range of a VPC that is
7425          * already attached, the new VPC CIDR range is not propagated to the default
7426          * propagation route table.</p> <p>To send VPC traffic to an attached transit
7427          * gateway, add a route to the VPC route table using
7428          * <a>CreateRoute</a>.</p><p><h3>See Also:</h3>   <a
7429          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateTransitGatewayVpcAttachment">AWS
7430          * API Reference</a></p>
7431          *
7432          * Queues the request into a thread executor and triggers associated callback when operation has finished.
7433          */
7434         virtual void CreateTransitGatewayVpcAttachmentAsync(const Model::CreateTransitGatewayVpcAttachmentRequest& request, const CreateTransitGatewayVpcAttachmentResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
7435 
7436         /**
7437          * <p>Creates an EBS volume that can be attached to an instance in the same
7438          * Availability Zone.</p> <p>You can create a new empty volume or restore a volume
7439          * from an EBS snapshot. Any Amazon Web Services Marketplace product codes from the
7440          * snapshot are propagated to the volume.</p> <p>You can create encrypted volumes.
7441          * Encrypted volumes must be attached to instances that support Amazon EBS
7442          * encryption. Volumes that are created from encrypted snapshots are also
7443          * automatically encrypted. For more information, see <a
7444          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html">Amazon
7445          * EBS encryption</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>
7446          * <p>You can tag your volumes during creation. For more information, see <a
7447          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html">Tag
7448          * your Amazon EC2 resources</a> in the <i>Amazon Elastic Compute Cloud User
7449          * Guide</i>.</p> <p>For more information, see <a
7450          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-creating-volume.html">Create
7451          * an Amazon EBS volume</a> in the <i>Amazon Elastic Compute Cloud User
7452          * Guide</i>.</p><p><h3>See Also:</h3>   <a
7453          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateVolume">AWS
7454          * API Reference</a></p>
7455          */
7456         virtual Model::CreateVolumeOutcome CreateVolume(const Model::CreateVolumeRequest& request) const;
7457 
7458         /**
7459          * <p>Creates an EBS volume that can be attached to an instance in the same
7460          * Availability Zone.</p> <p>You can create a new empty volume or restore a volume
7461          * from an EBS snapshot. Any Amazon Web Services Marketplace product codes from the
7462          * snapshot are propagated to the volume.</p> <p>You can create encrypted volumes.
7463          * Encrypted volumes must be attached to instances that support Amazon EBS
7464          * encryption. Volumes that are created from encrypted snapshots are also
7465          * automatically encrypted. For more information, see <a
7466          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html">Amazon
7467          * EBS encryption</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>
7468          * <p>You can tag your volumes during creation. For more information, see <a
7469          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html">Tag
7470          * your Amazon EC2 resources</a> in the <i>Amazon Elastic Compute Cloud User
7471          * Guide</i>.</p> <p>For more information, see <a
7472          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-creating-volume.html">Create
7473          * an Amazon EBS volume</a> in the <i>Amazon Elastic Compute Cloud User
7474          * Guide</i>.</p><p><h3>See Also:</h3>   <a
7475          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateVolume">AWS
7476          * API Reference</a></p>
7477          *
7478          * returns a future to the operation so that it can be executed in parallel to other requests.
7479          */
7480         virtual Model::CreateVolumeOutcomeCallable CreateVolumeCallable(const Model::CreateVolumeRequest& request) const;
7481 
7482         /**
7483          * <p>Creates an EBS volume that can be attached to an instance in the same
7484          * Availability Zone.</p> <p>You can create a new empty volume or restore a volume
7485          * from an EBS snapshot. Any Amazon Web Services Marketplace product codes from the
7486          * snapshot are propagated to the volume.</p> <p>You can create encrypted volumes.
7487          * Encrypted volumes must be attached to instances that support Amazon EBS
7488          * encryption. Volumes that are created from encrypted snapshots are also
7489          * automatically encrypted. For more information, see <a
7490          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html">Amazon
7491          * EBS encryption</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>
7492          * <p>You can tag your volumes during creation. For more information, see <a
7493          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html">Tag
7494          * your Amazon EC2 resources</a> in the <i>Amazon Elastic Compute Cloud User
7495          * Guide</i>.</p> <p>For more information, see <a
7496          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-creating-volume.html">Create
7497          * an Amazon EBS volume</a> in the <i>Amazon Elastic Compute Cloud User
7498          * Guide</i>.</p><p><h3>See Also:</h3>   <a
7499          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateVolume">AWS
7500          * API Reference</a></p>
7501          *
7502          * Queues the request into a thread executor and triggers associated callback when operation has finished.
7503          */
7504         virtual void CreateVolumeAsync(const Model::CreateVolumeRequest& request, const CreateVolumeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
7505 
7506         /**
7507          * <p>Creates a VPC with the specified IPv4 CIDR block. The smallest VPC you can
7508          * create uses a /28 netmask (16 IPv4 addresses), and the largest uses a /16
7509          * netmask (65,536 IPv4 addresses). For more information about how large to make
7510          * your VPC, see <a
7511          * href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html">Your
7512          * VPC and subnets</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.</p>
7513          * <p>You can optionally request an IPv6 CIDR block for the VPC. You can request an
7514          * Amazon-provided IPv6 CIDR block from Amazon's pool of IPv6 addresses, or an IPv6
7515          * CIDR block from an IPv6 address pool that you provisioned through bring your own
7516          * IP addresses (<a
7517          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-byoip.html">BYOIP</a>).</p>
7518          * <p>By default, each instance you launch in the VPC has the default DHCP options,
7519          * which include only a default DNS server that we provide (AmazonProvidedDNS). For
7520          * more information, see <a
7521          * href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_DHCP_Options.html">DHCP
7522          * options sets</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.</p>
7523          * <p>You can specify the instance tenancy value for the VPC when you create it.
7524          * You can't change this value for the VPC after you create it. For more
7525          * information, see <a
7526          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-instance.html">Dedicated
7527          * Instances</a> in the <i>Amazon Elastic Compute Cloud User
7528          * Guide</i>.</p><p><h3>See Also:</h3>   <a
7529          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateVpc">AWS API
7530          * Reference</a></p>
7531          */
7532         virtual Model::CreateVpcOutcome CreateVpc(const Model::CreateVpcRequest& request) const;
7533 
7534         /**
7535          * <p>Creates a VPC with the specified IPv4 CIDR block. The smallest VPC you can
7536          * create uses a /28 netmask (16 IPv4 addresses), and the largest uses a /16
7537          * netmask (65,536 IPv4 addresses). For more information about how large to make
7538          * your VPC, see <a
7539          * href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html">Your
7540          * VPC and subnets</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.</p>
7541          * <p>You can optionally request an IPv6 CIDR block for the VPC. You can request an
7542          * Amazon-provided IPv6 CIDR block from Amazon's pool of IPv6 addresses, or an IPv6
7543          * CIDR block from an IPv6 address pool that you provisioned through bring your own
7544          * IP addresses (<a
7545          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-byoip.html">BYOIP</a>).</p>
7546          * <p>By default, each instance you launch in the VPC has the default DHCP options,
7547          * which include only a default DNS server that we provide (AmazonProvidedDNS). For
7548          * more information, see <a
7549          * href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_DHCP_Options.html">DHCP
7550          * options sets</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.</p>
7551          * <p>You can specify the instance tenancy value for the VPC when you create it.
7552          * You can't change this value for the VPC after you create it. For more
7553          * information, see <a
7554          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-instance.html">Dedicated
7555          * Instances</a> in the <i>Amazon Elastic Compute Cloud User
7556          * Guide</i>.</p><p><h3>See Also:</h3>   <a
7557          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateVpc">AWS API
7558          * Reference</a></p>
7559          *
7560          * returns a future to the operation so that it can be executed in parallel to other requests.
7561          */
7562         virtual Model::CreateVpcOutcomeCallable CreateVpcCallable(const Model::CreateVpcRequest& request) const;
7563 
7564         /**
7565          * <p>Creates a VPC with the specified IPv4 CIDR block. The smallest VPC you can
7566          * create uses a /28 netmask (16 IPv4 addresses), and the largest uses a /16
7567          * netmask (65,536 IPv4 addresses). For more information about how large to make
7568          * your VPC, see <a
7569          * href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html">Your
7570          * VPC and subnets</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.</p>
7571          * <p>You can optionally request an IPv6 CIDR block for the VPC. You can request an
7572          * Amazon-provided IPv6 CIDR block from Amazon's pool of IPv6 addresses, or an IPv6
7573          * CIDR block from an IPv6 address pool that you provisioned through bring your own
7574          * IP addresses (<a
7575          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-byoip.html">BYOIP</a>).</p>
7576          * <p>By default, each instance you launch in the VPC has the default DHCP options,
7577          * which include only a default DNS server that we provide (AmazonProvidedDNS). For
7578          * more information, see <a
7579          * href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_DHCP_Options.html">DHCP
7580          * options sets</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.</p>
7581          * <p>You can specify the instance tenancy value for the VPC when you create it.
7582          * You can't change this value for the VPC after you create it. For more
7583          * information, see <a
7584          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-instance.html">Dedicated
7585          * Instances</a> in the <i>Amazon Elastic Compute Cloud User
7586          * Guide</i>.</p><p><h3>See Also:</h3>   <a
7587          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateVpc">AWS API
7588          * Reference</a></p>
7589          *
7590          * Queues the request into a thread executor and triggers associated callback when operation has finished.
7591          */
7592         virtual void CreateVpcAsync(const Model::CreateVpcRequest& request, const CreateVpcResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
7593 
7594         /**
7595          * <p>Creates a VPC endpoint for a specified service. An endpoint enables you to
7596          * create a private connection between your VPC and the service. The service may be
7597          * provided by Amazon Web Services, an Amazon Web Services Marketplace Partner, or
7598          * another Amazon Web Services account. For more information, see <a
7599          * href="https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints.html">VPC
7600          * Endpoints</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.</p> <p>A
7601          * <code>gateway</code> endpoint serves as a target for a route in your route table
7602          * for traffic destined for the Amazon Web Service. You can specify an endpoint
7603          * policy to attach to the endpoint, which will control access to the service from
7604          * your VPC. You can also specify the VPC route tables that use the endpoint.</p>
7605          * <p>An <code>interface</code> endpoint is a network interface in your subnet that
7606          * serves as an endpoint for communicating with the specified service. You can
7607          * specify the subnets in which to create an endpoint, and the security groups to
7608          * associate with the endpoint network interface.</p> <p>A
7609          * <code>GatewayLoadBalancer</code> endpoint is a network interface in your subnet
7610          * that serves an endpoint for communicating with a Gateway Load Balancer that
7611          * you've configured as a VPC endpoint service.</p> <p>Use
7612          * <a>DescribeVpcEndpointServices</a> to get a list of supported
7613          * services.</p><p><h3>See Also:</h3>   <a
7614          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateVpcEndpoint">AWS
7615          * API Reference</a></p>
7616          */
7617         virtual Model::CreateVpcEndpointOutcome CreateVpcEndpoint(const Model::CreateVpcEndpointRequest& request) const;
7618 
7619         /**
7620          * <p>Creates a VPC endpoint for a specified service. An endpoint enables you to
7621          * create a private connection between your VPC and the service. The service may be
7622          * provided by Amazon Web Services, an Amazon Web Services Marketplace Partner, or
7623          * another Amazon Web Services account. For more information, see <a
7624          * href="https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints.html">VPC
7625          * Endpoints</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.</p> <p>A
7626          * <code>gateway</code> endpoint serves as a target for a route in your route table
7627          * for traffic destined for the Amazon Web Service. You can specify an endpoint
7628          * policy to attach to the endpoint, which will control access to the service from
7629          * your VPC. You can also specify the VPC route tables that use the endpoint.</p>
7630          * <p>An <code>interface</code> endpoint is a network interface in your subnet that
7631          * serves as an endpoint for communicating with the specified service. You can
7632          * specify the subnets in which to create an endpoint, and the security groups to
7633          * associate with the endpoint network interface.</p> <p>A
7634          * <code>GatewayLoadBalancer</code> endpoint is a network interface in your subnet
7635          * that serves an endpoint for communicating with a Gateway Load Balancer that
7636          * you've configured as a VPC endpoint service.</p> <p>Use
7637          * <a>DescribeVpcEndpointServices</a> to get a list of supported
7638          * services.</p><p><h3>See Also:</h3>   <a
7639          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateVpcEndpoint">AWS
7640          * API Reference</a></p>
7641          *
7642          * returns a future to the operation so that it can be executed in parallel to other requests.
7643          */
7644         virtual Model::CreateVpcEndpointOutcomeCallable CreateVpcEndpointCallable(const Model::CreateVpcEndpointRequest& request) const;
7645 
7646         /**
7647          * <p>Creates a VPC endpoint for a specified service. An endpoint enables you to
7648          * create a private connection between your VPC and the service. The service may be
7649          * provided by Amazon Web Services, an Amazon Web Services Marketplace Partner, or
7650          * another Amazon Web Services account. For more information, see <a
7651          * href="https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints.html">VPC
7652          * Endpoints</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.</p> <p>A
7653          * <code>gateway</code> endpoint serves as a target for a route in your route table
7654          * for traffic destined for the Amazon Web Service. You can specify an endpoint
7655          * policy to attach to the endpoint, which will control access to the service from
7656          * your VPC. You can also specify the VPC route tables that use the endpoint.</p>
7657          * <p>An <code>interface</code> endpoint is a network interface in your subnet that
7658          * serves as an endpoint for communicating with the specified service. You can
7659          * specify the subnets in which to create an endpoint, and the security groups to
7660          * associate with the endpoint network interface.</p> <p>A
7661          * <code>GatewayLoadBalancer</code> endpoint is a network interface in your subnet
7662          * that serves an endpoint for communicating with a Gateway Load Balancer that
7663          * you've configured as a VPC endpoint service.</p> <p>Use
7664          * <a>DescribeVpcEndpointServices</a> to get a list of supported
7665          * services.</p><p><h3>See Also:</h3>   <a
7666          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateVpcEndpoint">AWS
7667          * API Reference</a></p>
7668          *
7669          * Queues the request into a thread executor and triggers associated callback when operation has finished.
7670          */
7671         virtual void CreateVpcEndpointAsync(const Model::CreateVpcEndpointRequest& request, const CreateVpcEndpointResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
7672 
7673         /**
7674          * <p>Creates a connection notification for a specified VPC endpoint or VPC
7675          * endpoint service. A connection notification notifies you of specific endpoint
7676          * events. You must create an SNS topic to receive notifications. For more
7677          * information, see <a
7678          * href="https://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html">Create a
7679          * Topic</a> in the <i>Amazon Simple Notification Service Developer Guide</i>.</p>
7680          * <p>You can create a connection notification for interface endpoints
7681          * only.</p><p><h3>See Also:</h3>   <a
7682          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateVpcEndpointConnectionNotification">AWS
7683          * API Reference</a></p>
7684          */
7685         virtual Model::CreateVpcEndpointConnectionNotificationOutcome CreateVpcEndpointConnectionNotification(const Model::CreateVpcEndpointConnectionNotificationRequest& request) const;
7686 
7687         /**
7688          * <p>Creates a connection notification for a specified VPC endpoint or VPC
7689          * endpoint service. A connection notification notifies you of specific endpoint
7690          * events. You must create an SNS topic to receive notifications. For more
7691          * information, see <a
7692          * href="https://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html">Create a
7693          * Topic</a> in the <i>Amazon Simple Notification Service Developer Guide</i>.</p>
7694          * <p>You can create a connection notification for interface endpoints
7695          * only.</p><p><h3>See Also:</h3>   <a
7696          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateVpcEndpointConnectionNotification">AWS
7697          * API Reference</a></p>
7698          *
7699          * returns a future to the operation so that it can be executed in parallel to other requests.
7700          */
7701         virtual Model::CreateVpcEndpointConnectionNotificationOutcomeCallable CreateVpcEndpointConnectionNotificationCallable(const Model::CreateVpcEndpointConnectionNotificationRequest& request) const;
7702 
7703         /**
7704          * <p>Creates a connection notification for a specified VPC endpoint or VPC
7705          * endpoint service. A connection notification notifies you of specific endpoint
7706          * events. You must create an SNS topic to receive notifications. For more
7707          * information, see <a
7708          * href="https://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html">Create a
7709          * Topic</a> in the <i>Amazon Simple Notification Service Developer Guide</i>.</p>
7710          * <p>You can create a connection notification for interface endpoints
7711          * only.</p><p><h3>See Also:</h3>   <a
7712          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateVpcEndpointConnectionNotification">AWS
7713          * API Reference</a></p>
7714          *
7715          * Queues the request into a thread executor and triggers associated callback when operation has finished.
7716          */
7717         virtual void CreateVpcEndpointConnectionNotificationAsync(const Model::CreateVpcEndpointConnectionNotificationRequest& request, const CreateVpcEndpointConnectionNotificationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
7718 
7719         /**
7720          * <p>Creates a VPC endpoint service configuration to which service consumers
7721          * (Amazon Web Services accounts, IAM users, and IAM roles) can connect.</p> <p>To
7722          * create an endpoint service configuration, you must first create one of the
7723          * following for your service:</p> <ul> <li> <p>A <a
7724          * href="https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html">Network
7725          * Load Balancer</a>. Service consumers connect to your service using an interface
7726          * endpoint.</p> </li> <li> <p>A <a
7727          * href="https://docs.aws.amazon.com/elasticloadbalancing/latest/gateway/introduction.html">Gateway
7728          * Load Balancer</a>. Service consumers connect to your service using a Gateway
7729          * Load Balancer endpoint.</p> </li> </ul> <p>For more information, see <a
7730          * href="https://docs.aws.amazon.com/vpc/latest/userguide/endpoint-service.html">VPC
7731          * Endpoint Services</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.
7732          * </p> <p>If you set the private DNS name, you must prove that you own the private
7733          * DNS domain name. For more information, see <a
7734          * href="https://docs.aws.amazon.com/vpc/latest/userguide/endpoint-services-dns-validation.html">VPC
7735          * Endpoint Service Private DNS Name Verification</a> in the <i>Amazon Virtual
7736          * Private Cloud User Guide</i>.</p><p><h3>See Also:</h3>   <a
7737          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateVpcEndpointServiceConfiguration">AWS
7738          * API Reference</a></p>
7739          */
7740         virtual Model::CreateVpcEndpointServiceConfigurationOutcome CreateVpcEndpointServiceConfiguration(const Model::CreateVpcEndpointServiceConfigurationRequest& request) const;
7741 
7742         /**
7743          * <p>Creates a VPC endpoint service configuration to which service consumers
7744          * (Amazon Web Services accounts, IAM users, and IAM roles) can connect.</p> <p>To
7745          * create an endpoint service configuration, you must first create one of the
7746          * following for your service:</p> <ul> <li> <p>A <a
7747          * href="https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html">Network
7748          * Load Balancer</a>. Service consumers connect to your service using an interface
7749          * endpoint.</p> </li> <li> <p>A <a
7750          * href="https://docs.aws.amazon.com/elasticloadbalancing/latest/gateway/introduction.html">Gateway
7751          * Load Balancer</a>. Service consumers connect to your service using a Gateway
7752          * Load Balancer endpoint.</p> </li> </ul> <p>For more information, see <a
7753          * href="https://docs.aws.amazon.com/vpc/latest/userguide/endpoint-service.html">VPC
7754          * Endpoint Services</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.
7755          * </p> <p>If you set the private DNS name, you must prove that you own the private
7756          * DNS domain name. For more information, see <a
7757          * href="https://docs.aws.amazon.com/vpc/latest/userguide/endpoint-services-dns-validation.html">VPC
7758          * Endpoint Service Private DNS Name Verification</a> in the <i>Amazon Virtual
7759          * Private Cloud User Guide</i>.</p><p><h3>See Also:</h3>   <a
7760          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateVpcEndpointServiceConfiguration">AWS
7761          * API Reference</a></p>
7762          *
7763          * returns a future to the operation so that it can be executed in parallel to other requests.
7764          */
7765         virtual Model::CreateVpcEndpointServiceConfigurationOutcomeCallable CreateVpcEndpointServiceConfigurationCallable(const Model::CreateVpcEndpointServiceConfigurationRequest& request) const;
7766 
7767         /**
7768          * <p>Creates a VPC endpoint service configuration to which service consumers
7769          * (Amazon Web Services accounts, IAM users, and IAM roles) can connect.</p> <p>To
7770          * create an endpoint service configuration, you must first create one of the
7771          * following for your service:</p> <ul> <li> <p>A <a
7772          * href="https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html">Network
7773          * Load Balancer</a>. Service consumers connect to your service using an interface
7774          * endpoint.</p> </li> <li> <p>A <a
7775          * href="https://docs.aws.amazon.com/elasticloadbalancing/latest/gateway/introduction.html">Gateway
7776          * Load Balancer</a>. Service consumers connect to your service using a Gateway
7777          * Load Balancer endpoint.</p> </li> </ul> <p>For more information, see <a
7778          * href="https://docs.aws.amazon.com/vpc/latest/userguide/endpoint-service.html">VPC
7779          * Endpoint Services</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.
7780          * </p> <p>If you set the private DNS name, you must prove that you own the private
7781          * DNS domain name. For more information, see <a
7782          * href="https://docs.aws.amazon.com/vpc/latest/userguide/endpoint-services-dns-validation.html">VPC
7783          * Endpoint Service Private DNS Name Verification</a> in the <i>Amazon Virtual
7784          * Private Cloud User Guide</i>.</p><p><h3>See Also:</h3>   <a
7785          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateVpcEndpointServiceConfiguration">AWS
7786          * API Reference</a></p>
7787          *
7788          * Queues the request into a thread executor and triggers associated callback when operation has finished.
7789          */
7790         virtual void CreateVpcEndpointServiceConfigurationAsync(const Model::CreateVpcEndpointServiceConfigurationRequest& request, const CreateVpcEndpointServiceConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
7791 
7792         /**
7793          * <p>Requests a VPC peering connection between two VPCs: a requester VPC that you
7794          * own and an accepter VPC with which to create the connection. The accepter VPC
7795          * can belong to another Amazon Web Services account and can be in a different
7796          * Region to the requester VPC. The requester VPC and accepter VPC cannot have
7797          * overlapping CIDR blocks.</p>  <p>Limitations and rules apply to a VPC
7798          * peering connection. For more information, see the <a
7799          * href="https://docs.aws.amazon.com/vpc/latest/peering/vpc-peering-basics.html#vpc-peering-limitations">limitations</a>
7800          * section in the <i>VPC Peering Guide</i>.</p>  <p>The owner of the
7801          * accepter VPC must accept the peering request to activate the peering connection.
7802          * The VPC peering connection request expires after 7 days, after which it cannot
7803          * be accepted or rejected.</p> <p>If you create a VPC peering connection request
7804          * between VPCs with overlapping CIDR blocks, the VPC peering connection has a
7805          * status of <code>failed</code>.</p><p><h3>See Also:</h3>   <a
7806          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateVpcPeeringConnection">AWS
7807          * API Reference</a></p>
7808          */
7809         virtual Model::CreateVpcPeeringConnectionOutcome CreateVpcPeeringConnection(const Model::CreateVpcPeeringConnectionRequest& request) const;
7810 
7811         /**
7812          * <p>Requests a VPC peering connection between two VPCs: a requester VPC that you
7813          * own and an accepter VPC with which to create the connection. The accepter VPC
7814          * can belong to another Amazon Web Services account and can be in a different
7815          * Region to the requester VPC. The requester VPC and accepter VPC cannot have
7816          * overlapping CIDR blocks.</p>  <p>Limitations and rules apply to a VPC
7817          * peering connection. For more information, see the <a
7818          * href="https://docs.aws.amazon.com/vpc/latest/peering/vpc-peering-basics.html#vpc-peering-limitations">limitations</a>
7819          * section in the <i>VPC Peering Guide</i>.</p>  <p>The owner of the
7820          * accepter VPC must accept the peering request to activate the peering connection.
7821          * The VPC peering connection request expires after 7 days, after which it cannot
7822          * be accepted or rejected.</p> <p>If you create a VPC peering connection request
7823          * between VPCs with overlapping CIDR blocks, the VPC peering connection has a
7824          * status of <code>failed</code>.</p><p><h3>See Also:</h3>   <a
7825          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateVpcPeeringConnection">AWS
7826          * API Reference</a></p>
7827          *
7828          * returns a future to the operation so that it can be executed in parallel to other requests.
7829          */
7830         virtual Model::CreateVpcPeeringConnectionOutcomeCallable CreateVpcPeeringConnectionCallable(const Model::CreateVpcPeeringConnectionRequest& request) const;
7831 
7832         /**
7833          * <p>Requests a VPC peering connection between two VPCs: a requester VPC that you
7834          * own and an accepter VPC with which to create the connection. The accepter VPC
7835          * can belong to another Amazon Web Services account and can be in a different
7836          * Region to the requester VPC. The requester VPC and accepter VPC cannot have
7837          * overlapping CIDR blocks.</p>  <p>Limitations and rules apply to a VPC
7838          * peering connection. For more information, see the <a
7839          * href="https://docs.aws.amazon.com/vpc/latest/peering/vpc-peering-basics.html#vpc-peering-limitations">limitations</a>
7840          * section in the <i>VPC Peering Guide</i>.</p>  <p>The owner of the
7841          * accepter VPC must accept the peering request to activate the peering connection.
7842          * The VPC peering connection request expires after 7 days, after which it cannot
7843          * be accepted or rejected.</p> <p>If you create a VPC peering connection request
7844          * between VPCs with overlapping CIDR blocks, the VPC peering connection has a
7845          * status of <code>failed</code>.</p><p><h3>See Also:</h3>   <a
7846          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateVpcPeeringConnection">AWS
7847          * API Reference</a></p>
7848          *
7849          * Queues the request into a thread executor and triggers associated callback when operation has finished.
7850          */
7851         virtual void CreateVpcPeeringConnectionAsync(const Model::CreateVpcPeeringConnectionRequest& request, const CreateVpcPeeringConnectionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
7852 
7853         /**
7854          * <p>Creates a VPN connection between an existing virtual private gateway or
7855          * transit gateway and a customer gateway. The supported connection type is
7856          * <code>ipsec.1</code>.</p> <p>The response includes information that you need to
7857          * give to your network administrator to configure your customer gateway.</p>
7858          *  <p>We strongly recommend that you use HTTPS when calling this
7859          * operation because the response contains sensitive cryptographic information for
7860          * configuring your customer gateway device.</p>  <p>If you decide to
7861          * shut down your VPN connection for any reason and later create a new VPN
7862          * connection, you must reconfigure your customer gateway with the new information
7863          * returned from this call.</p> <p>This is an idempotent operation. If you perform
7864          * the operation more than once, Amazon EC2 doesn't return an error.</p> <p>For
7865          * more information, see <a
7866          * href="https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html">Amazon Web
7867          * Services Site-to-Site VPN</a> in the <i>Amazon Web Services Site-to-Site VPN
7868          * User Guide</i>.</p><p><h3>See Also:</h3>   <a
7869          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateVpnConnection">AWS
7870          * API Reference</a></p>
7871          */
7872         virtual Model::CreateVpnConnectionOutcome CreateVpnConnection(const Model::CreateVpnConnectionRequest& request) const;
7873 
7874         /**
7875          * <p>Creates a VPN connection between an existing virtual private gateway or
7876          * transit gateway and a customer gateway. The supported connection type is
7877          * <code>ipsec.1</code>.</p> <p>The response includes information that you need to
7878          * give to your network administrator to configure your customer gateway.</p>
7879          *  <p>We strongly recommend that you use HTTPS when calling this
7880          * operation because the response contains sensitive cryptographic information for
7881          * configuring your customer gateway device.</p>  <p>If you decide to
7882          * shut down your VPN connection for any reason and later create a new VPN
7883          * connection, you must reconfigure your customer gateway with the new information
7884          * returned from this call.</p> <p>This is an idempotent operation. If you perform
7885          * the operation more than once, Amazon EC2 doesn't return an error.</p> <p>For
7886          * more information, see <a
7887          * href="https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html">Amazon Web
7888          * Services Site-to-Site VPN</a> in the <i>Amazon Web Services Site-to-Site VPN
7889          * User Guide</i>.</p><p><h3>See Also:</h3>   <a
7890          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateVpnConnection">AWS
7891          * API Reference</a></p>
7892          *
7893          * returns a future to the operation so that it can be executed in parallel to other requests.
7894          */
7895         virtual Model::CreateVpnConnectionOutcomeCallable CreateVpnConnectionCallable(const Model::CreateVpnConnectionRequest& request) const;
7896 
7897         /**
7898          * <p>Creates a VPN connection between an existing virtual private gateway or
7899          * transit gateway and a customer gateway. The supported connection type is
7900          * <code>ipsec.1</code>.</p> <p>The response includes information that you need to
7901          * give to your network administrator to configure your customer gateway.</p>
7902          *  <p>We strongly recommend that you use HTTPS when calling this
7903          * operation because the response contains sensitive cryptographic information for
7904          * configuring your customer gateway device.</p>  <p>If you decide to
7905          * shut down your VPN connection for any reason and later create a new VPN
7906          * connection, you must reconfigure your customer gateway with the new information
7907          * returned from this call.</p> <p>This is an idempotent operation. If you perform
7908          * the operation more than once, Amazon EC2 doesn't return an error.</p> <p>For
7909          * more information, see <a
7910          * href="https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html">Amazon Web
7911          * Services Site-to-Site VPN</a> in the <i>Amazon Web Services Site-to-Site VPN
7912          * User Guide</i>.</p><p><h3>See Also:</h3>   <a
7913          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateVpnConnection">AWS
7914          * API Reference</a></p>
7915          *
7916          * Queues the request into a thread executor and triggers associated callback when operation has finished.
7917          */
7918         virtual void CreateVpnConnectionAsync(const Model::CreateVpnConnectionRequest& request, const CreateVpnConnectionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
7919 
7920         /**
7921          * <p>Creates a static route associated with a VPN connection between an existing
7922          * virtual private gateway and a VPN customer gateway. The static route allows
7923          * traffic to be routed from the virtual private gateway to the VPN customer
7924          * gateway.</p> <p>For more information, see <a
7925          * href="https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html">Amazon Web
7926          * Services Site-to-Site VPN</a> in the <i>Amazon Web Services Site-to-Site VPN
7927          * User Guide</i>.</p><p><h3>See Also:</h3>   <a
7928          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateVpnConnectionRoute">AWS
7929          * API Reference</a></p>
7930          */
7931         virtual Model::CreateVpnConnectionRouteOutcome CreateVpnConnectionRoute(const Model::CreateVpnConnectionRouteRequest& request) const;
7932 
7933         /**
7934          * <p>Creates a static route associated with a VPN connection between an existing
7935          * virtual private gateway and a VPN customer gateway. The static route allows
7936          * traffic to be routed from the virtual private gateway to the VPN customer
7937          * gateway.</p> <p>For more information, see <a
7938          * href="https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html">Amazon Web
7939          * Services Site-to-Site VPN</a> in the <i>Amazon Web Services Site-to-Site VPN
7940          * User Guide</i>.</p><p><h3>See Also:</h3>   <a
7941          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateVpnConnectionRoute">AWS
7942          * API Reference</a></p>
7943          *
7944          * returns a future to the operation so that it can be executed in parallel to other requests.
7945          */
7946         virtual Model::CreateVpnConnectionRouteOutcomeCallable CreateVpnConnectionRouteCallable(const Model::CreateVpnConnectionRouteRequest& request) const;
7947 
7948         /**
7949          * <p>Creates a static route associated with a VPN connection between an existing
7950          * virtual private gateway and a VPN customer gateway. The static route allows
7951          * traffic to be routed from the virtual private gateway to the VPN customer
7952          * gateway.</p> <p>For more information, see <a
7953          * href="https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html">Amazon Web
7954          * Services Site-to-Site VPN</a> in the <i>Amazon Web Services Site-to-Site VPN
7955          * User Guide</i>.</p><p><h3>See Also:</h3>   <a
7956          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateVpnConnectionRoute">AWS
7957          * API Reference</a></p>
7958          *
7959          * Queues the request into a thread executor and triggers associated callback when operation has finished.
7960          */
7961         virtual void CreateVpnConnectionRouteAsync(const Model::CreateVpnConnectionRouteRequest& request, const CreateVpnConnectionRouteResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
7962 
7963         /**
7964          * <p>Creates a virtual private gateway. A virtual private gateway is the endpoint
7965          * on the VPC side of your VPN connection. You can create a virtual private gateway
7966          * before creating the VPC itself.</p> <p>For more information, see <a
7967          * href="https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html">Amazon Web
7968          * Services Site-to-Site VPN</a> in the <i>Amazon Web Services Site-to-Site VPN
7969          * User Guide</i>.</p><p><h3>See Also:</h3>   <a
7970          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateVpnGateway">AWS
7971          * API Reference</a></p>
7972          */
7973         virtual Model::CreateVpnGatewayOutcome CreateVpnGateway(const Model::CreateVpnGatewayRequest& request) const;
7974 
7975         /**
7976          * <p>Creates a virtual private gateway. A virtual private gateway is the endpoint
7977          * on the VPC side of your VPN connection. You can create a virtual private gateway
7978          * before creating the VPC itself.</p> <p>For more information, see <a
7979          * href="https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html">Amazon Web
7980          * Services Site-to-Site VPN</a> in the <i>Amazon Web Services Site-to-Site VPN
7981          * User Guide</i>.</p><p><h3>See Also:</h3>   <a
7982          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateVpnGateway">AWS
7983          * API Reference</a></p>
7984          *
7985          * returns a future to the operation so that it can be executed in parallel to other requests.
7986          */
7987         virtual Model::CreateVpnGatewayOutcomeCallable CreateVpnGatewayCallable(const Model::CreateVpnGatewayRequest& request) const;
7988 
7989         /**
7990          * <p>Creates a virtual private gateway. A virtual private gateway is the endpoint
7991          * on the VPC side of your VPN connection. You can create a virtual private gateway
7992          * before creating the VPC itself.</p> <p>For more information, see <a
7993          * href="https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html">Amazon Web
7994          * Services Site-to-Site VPN</a> in the <i>Amazon Web Services Site-to-Site VPN
7995          * User Guide</i>.</p><p><h3>See Also:</h3>   <a
7996          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateVpnGateway">AWS
7997          * API Reference</a></p>
7998          *
7999          * Queues the request into a thread executor and triggers associated callback when operation has finished.
8000          */
8001         virtual void CreateVpnGatewayAsync(const Model::CreateVpnGatewayRequest& request, const CreateVpnGatewayResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
8002 
8003         /**
8004          * <p>Deletes a carrier gateway.</p>  <p>If you do not delete the route
8005          * that contains the carrier gateway as the Target, the route is a blackhole route.
8006          * For information about how to delete a route, see <a
8007          * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeleteRoute.html">DeleteRoute</a>.</p>
8008          * <p><h3>See Also:</h3>   <a
8009          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteCarrierGateway">AWS
8010          * API Reference</a></p>
8011          */
8012         virtual Model::DeleteCarrierGatewayOutcome DeleteCarrierGateway(const Model::DeleteCarrierGatewayRequest& request) const;
8013 
8014         /**
8015          * <p>Deletes a carrier gateway.</p>  <p>If you do not delete the route
8016          * that contains the carrier gateway as the Target, the route is a blackhole route.
8017          * For information about how to delete a route, see <a
8018          * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeleteRoute.html">DeleteRoute</a>.</p>
8019          * <p><h3>See Also:</h3>   <a
8020          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteCarrierGateway">AWS
8021          * API Reference</a></p>
8022          *
8023          * returns a future to the operation so that it can be executed in parallel to other requests.
8024          */
8025         virtual Model::DeleteCarrierGatewayOutcomeCallable DeleteCarrierGatewayCallable(const Model::DeleteCarrierGatewayRequest& request) const;
8026 
8027         /**
8028          * <p>Deletes a carrier gateway.</p>  <p>If you do not delete the route
8029          * that contains the carrier gateway as the Target, the route is a blackhole route.
8030          * For information about how to delete a route, see <a
8031          * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeleteRoute.html">DeleteRoute</a>.</p>
8032          * <p><h3>See Also:</h3>   <a
8033          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteCarrierGateway">AWS
8034          * API Reference</a></p>
8035          *
8036          * Queues the request into a thread executor and triggers associated callback when operation has finished.
8037          */
8038         virtual void DeleteCarrierGatewayAsync(const Model::DeleteCarrierGatewayRequest& request, const DeleteCarrierGatewayResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
8039 
8040         /**
8041          * <p>Deletes the specified Client VPN endpoint. You must disassociate all target
8042          * networks before you can delete a Client VPN endpoint.</p><p><h3>See Also:</h3>
8043          * <a
8044          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteClientVpnEndpoint">AWS
8045          * API Reference</a></p>
8046          */
8047         virtual Model::DeleteClientVpnEndpointOutcome DeleteClientVpnEndpoint(const Model::DeleteClientVpnEndpointRequest& request) const;
8048 
8049         /**
8050          * <p>Deletes the specified Client VPN endpoint. You must disassociate all target
8051          * networks before you can delete a Client VPN endpoint.</p><p><h3>See Also:</h3>
8052          * <a
8053          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteClientVpnEndpoint">AWS
8054          * API Reference</a></p>
8055          *
8056          * returns a future to the operation so that it can be executed in parallel to other requests.
8057          */
8058         virtual Model::DeleteClientVpnEndpointOutcomeCallable DeleteClientVpnEndpointCallable(const Model::DeleteClientVpnEndpointRequest& request) const;
8059 
8060         /**
8061          * <p>Deletes the specified Client VPN endpoint. You must disassociate all target
8062          * networks before you can delete a Client VPN endpoint.</p><p><h3>See Also:</h3>
8063          * <a
8064          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteClientVpnEndpoint">AWS
8065          * API Reference</a></p>
8066          *
8067          * Queues the request into a thread executor and triggers associated callback when operation has finished.
8068          */
8069         virtual void DeleteClientVpnEndpointAsync(const Model::DeleteClientVpnEndpointRequest& request, const DeleteClientVpnEndpointResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
8070 
8071         /**
8072          * <p>Deletes a route from a Client VPN endpoint. You can only delete routes that
8073          * you manually added using the <b>CreateClientVpnRoute</b> action. You cannot
8074          * delete routes that were automatically added when associating a subnet. To remove
8075          * routes that have been automatically added, disassociate the target subnet from
8076          * the Client VPN endpoint.</p><p><h3>See Also:</h3>   <a
8077          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteClientVpnRoute">AWS
8078          * API Reference</a></p>
8079          */
8080         virtual Model::DeleteClientVpnRouteOutcome DeleteClientVpnRoute(const Model::DeleteClientVpnRouteRequest& request) const;
8081 
8082         /**
8083          * <p>Deletes a route from a Client VPN endpoint. You can only delete routes that
8084          * you manually added using the <b>CreateClientVpnRoute</b> action. You cannot
8085          * delete routes that were automatically added when associating a subnet. To remove
8086          * routes that have been automatically added, disassociate the target subnet from
8087          * the Client VPN endpoint.</p><p><h3>See Also:</h3>   <a
8088          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteClientVpnRoute">AWS
8089          * API Reference</a></p>
8090          *
8091          * returns a future to the operation so that it can be executed in parallel to other requests.
8092          */
8093         virtual Model::DeleteClientVpnRouteOutcomeCallable DeleteClientVpnRouteCallable(const Model::DeleteClientVpnRouteRequest& request) const;
8094 
8095         /**
8096          * <p>Deletes a route from a Client VPN endpoint. You can only delete routes that
8097          * you manually added using the <b>CreateClientVpnRoute</b> action. You cannot
8098          * delete routes that were automatically added when associating a subnet. To remove
8099          * routes that have been automatically added, disassociate the target subnet from
8100          * the Client VPN endpoint.</p><p><h3>See Also:</h3>   <a
8101          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteClientVpnRoute">AWS
8102          * API Reference</a></p>
8103          *
8104          * Queues the request into a thread executor and triggers associated callback when operation has finished.
8105          */
8106         virtual void DeleteClientVpnRouteAsync(const Model::DeleteClientVpnRouteRequest& request, const DeleteClientVpnRouteResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
8107 
8108         /**
8109          * <p>Deletes the specified customer gateway. You must delete the VPN connection
8110          * before you can delete the customer gateway.</p><p><h3>See Also:</h3>   <a
8111          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteCustomerGateway">AWS
8112          * API Reference</a></p>
8113          */
8114         virtual Model::DeleteCustomerGatewayOutcome DeleteCustomerGateway(const Model::DeleteCustomerGatewayRequest& request) const;
8115 
8116         /**
8117          * <p>Deletes the specified customer gateway. You must delete the VPN connection
8118          * before you can delete the customer gateway.</p><p><h3>See Also:</h3>   <a
8119          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteCustomerGateway">AWS
8120          * API Reference</a></p>
8121          *
8122          * returns a future to the operation so that it can be executed in parallel to other requests.
8123          */
8124         virtual Model::DeleteCustomerGatewayOutcomeCallable DeleteCustomerGatewayCallable(const Model::DeleteCustomerGatewayRequest& request) const;
8125 
8126         /**
8127          * <p>Deletes the specified customer gateway. You must delete the VPN connection
8128          * before you can delete the customer gateway.</p><p><h3>See Also:</h3>   <a
8129          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteCustomerGateway">AWS
8130          * API Reference</a></p>
8131          *
8132          * Queues the request into a thread executor and triggers associated callback when operation has finished.
8133          */
8134         virtual void DeleteCustomerGatewayAsync(const Model::DeleteCustomerGatewayRequest& request, const DeleteCustomerGatewayResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
8135 
8136         /**
8137          * <p>Deletes the specified set of DHCP options. You must disassociate the set of
8138          * DHCP options before you can delete it. You can disassociate the set of DHCP
8139          * options by associating either a new set of options or the default set of options
8140          * with the VPC.</p><p><h3>See Also:</h3>   <a
8141          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteDhcpOptions">AWS
8142          * API Reference</a></p>
8143          */
8144         virtual Model::DeleteDhcpOptionsOutcome DeleteDhcpOptions(const Model::DeleteDhcpOptionsRequest& request) const;
8145 
8146         /**
8147          * <p>Deletes the specified set of DHCP options. You must disassociate the set of
8148          * DHCP options before you can delete it. You can disassociate the set of DHCP
8149          * options by associating either a new set of options or the default set of options
8150          * with the VPC.</p><p><h3>See Also:</h3>   <a
8151          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteDhcpOptions">AWS
8152          * API Reference</a></p>
8153          *
8154          * returns a future to the operation so that it can be executed in parallel to other requests.
8155          */
8156         virtual Model::DeleteDhcpOptionsOutcomeCallable DeleteDhcpOptionsCallable(const Model::DeleteDhcpOptionsRequest& request) const;
8157 
8158         /**
8159          * <p>Deletes the specified set of DHCP options. You must disassociate the set of
8160          * DHCP options before you can delete it. You can disassociate the set of DHCP
8161          * options by associating either a new set of options or the default set of options
8162          * with the VPC.</p><p><h3>See Also:</h3>   <a
8163          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteDhcpOptions">AWS
8164          * API Reference</a></p>
8165          *
8166          * Queues the request into a thread executor and triggers associated callback when operation has finished.
8167          */
8168         virtual void DeleteDhcpOptionsAsync(const Model::DeleteDhcpOptionsRequest& request, const DeleteDhcpOptionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
8169 
8170         /**
8171          * <p>Deletes an egress-only internet gateway.</p><p><h3>See Also:</h3>   <a
8172          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteEgressOnlyInternetGateway">AWS
8173          * API Reference</a></p>
8174          */
8175         virtual Model::DeleteEgressOnlyInternetGatewayOutcome DeleteEgressOnlyInternetGateway(const Model::DeleteEgressOnlyInternetGatewayRequest& request) const;
8176 
8177         /**
8178          * <p>Deletes an egress-only internet gateway.</p><p><h3>See Also:</h3>   <a
8179          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteEgressOnlyInternetGateway">AWS
8180          * API Reference</a></p>
8181          *
8182          * returns a future to the operation so that it can be executed in parallel to other requests.
8183          */
8184         virtual Model::DeleteEgressOnlyInternetGatewayOutcomeCallable DeleteEgressOnlyInternetGatewayCallable(const Model::DeleteEgressOnlyInternetGatewayRequest& request) const;
8185 
8186         /**
8187          * <p>Deletes an egress-only internet gateway.</p><p><h3>See Also:</h3>   <a
8188          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteEgressOnlyInternetGateway">AWS
8189          * API Reference</a></p>
8190          *
8191          * Queues the request into a thread executor and triggers associated callback when operation has finished.
8192          */
8193         virtual void DeleteEgressOnlyInternetGatewayAsync(const Model::DeleteEgressOnlyInternetGatewayRequest& request, const DeleteEgressOnlyInternetGatewayResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
8194 
8195         /**
8196          * <p>Deletes the specified EC2 Fleet.</p> <p>After you delete an EC2 Fleet, it
8197          * launches no new instances.</p> <p>You must specify whether a deleted EC2 Fleet
8198          * should also terminate its instances. If you choose to terminate the instances,
8199          * the EC2 Fleet enters the <code>deleted_terminating</code> state. Otherwise, the
8200          * EC2 Fleet enters the <code>deleted_running</code> state, and the instances
8201          * continue to run until they are interrupted or you terminate them manually.</p>
8202          * <p>For <code>instant</code> fleets, EC2 Fleet must terminate the instances when
8203          * the fleet is deleted. A deleted <code>instant</code> fleet with running
8204          * instances is not supported.</p> <p class="title"> <b>Restrictions</b> </p> <ul>
8205          * <li> <p>You can delete up to 25 <code>instant</code> fleets in a single request.
8206          * If you exceed this number, no <code>instant</code> fleets are deleted and an
8207          * error is returned. There is no restriction on the number of fleets of type
8208          * <code>maintain</code> or <code>request</code> that can be deleted in a single
8209          * request.</p> </li> <li> <p>Up to 1000 instances can be terminated in a single
8210          * request to delete <code>instant</code> fleets.</p> </li> </ul> <p>For more
8211          * information, see <a
8212          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/manage-ec2-fleet.html#delete-fleet">Deleting
8213          * an EC2 Fleet</a> in the <i>Amazon EC2 User Guide</i>.</p><p><h3>See Also:</h3>
8214          * <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteFleets">AWS
8215          * API Reference</a></p>
8216          */
8217         virtual Model::DeleteFleetsOutcome DeleteFleets(const Model::DeleteFleetsRequest& request) const;
8218 
8219         /**
8220          * <p>Deletes the specified EC2 Fleet.</p> <p>After you delete an EC2 Fleet, it
8221          * launches no new instances.</p> <p>You must specify whether a deleted EC2 Fleet
8222          * should also terminate its instances. If you choose to terminate the instances,
8223          * the EC2 Fleet enters the <code>deleted_terminating</code> state. Otherwise, the
8224          * EC2 Fleet enters the <code>deleted_running</code> state, and the instances
8225          * continue to run until they are interrupted or you terminate them manually.</p>
8226          * <p>For <code>instant</code> fleets, EC2 Fleet must terminate the instances when
8227          * the fleet is deleted. A deleted <code>instant</code> fleet with running
8228          * instances is not supported.</p> <p class="title"> <b>Restrictions</b> </p> <ul>
8229          * <li> <p>You can delete up to 25 <code>instant</code> fleets in a single request.
8230          * If you exceed this number, no <code>instant</code> fleets are deleted and an
8231          * error is returned. There is no restriction on the number of fleets of type
8232          * <code>maintain</code> or <code>request</code> that can be deleted in a single
8233          * request.</p> </li> <li> <p>Up to 1000 instances can be terminated in a single
8234          * request to delete <code>instant</code> fleets.</p> </li> </ul> <p>For more
8235          * information, see <a
8236          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/manage-ec2-fleet.html#delete-fleet">Deleting
8237          * an EC2 Fleet</a> in the <i>Amazon EC2 User Guide</i>.</p><p><h3>See Also:</h3>
8238          * <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteFleets">AWS
8239          * API Reference</a></p>
8240          *
8241          * returns a future to the operation so that it can be executed in parallel to other requests.
8242          */
8243         virtual Model::DeleteFleetsOutcomeCallable DeleteFleetsCallable(const Model::DeleteFleetsRequest& request) const;
8244 
8245         /**
8246          * <p>Deletes the specified EC2 Fleet.</p> <p>After you delete an EC2 Fleet, it
8247          * launches no new instances.</p> <p>You must specify whether a deleted EC2 Fleet
8248          * should also terminate its instances. If you choose to terminate the instances,
8249          * the EC2 Fleet enters the <code>deleted_terminating</code> state. Otherwise, the
8250          * EC2 Fleet enters the <code>deleted_running</code> state, and the instances
8251          * continue to run until they are interrupted or you terminate them manually.</p>
8252          * <p>For <code>instant</code> fleets, EC2 Fleet must terminate the instances when
8253          * the fleet is deleted. A deleted <code>instant</code> fleet with running
8254          * instances is not supported.</p> <p class="title"> <b>Restrictions</b> </p> <ul>
8255          * <li> <p>You can delete up to 25 <code>instant</code> fleets in a single request.
8256          * If you exceed this number, no <code>instant</code> fleets are deleted and an
8257          * error is returned. There is no restriction on the number of fleets of type
8258          * <code>maintain</code> or <code>request</code> that can be deleted in a single
8259          * request.</p> </li> <li> <p>Up to 1000 instances can be terminated in a single
8260          * request to delete <code>instant</code> fleets.</p> </li> </ul> <p>For more
8261          * information, see <a
8262          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/manage-ec2-fleet.html#delete-fleet">Deleting
8263          * an EC2 Fleet</a> in the <i>Amazon EC2 User Guide</i>.</p><p><h3>See Also:</h3>
8264          * <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteFleets">AWS
8265          * API Reference</a></p>
8266          *
8267          * Queues the request into a thread executor and triggers associated callback when operation has finished.
8268          */
8269         virtual void DeleteFleetsAsync(const Model::DeleteFleetsRequest& request, const DeleteFleetsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
8270 
8271         /**
8272          * <p>Deletes one or more flow logs.</p><p><h3>See Also:</h3>   <a
8273          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteFlowLogs">AWS
8274          * API Reference</a></p>
8275          */
8276         virtual Model::DeleteFlowLogsOutcome DeleteFlowLogs(const Model::DeleteFlowLogsRequest& request) const;
8277 
8278         /**
8279          * <p>Deletes one or more flow logs.</p><p><h3>See Also:</h3>   <a
8280          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteFlowLogs">AWS
8281          * API Reference</a></p>
8282          *
8283          * returns a future to the operation so that it can be executed in parallel to other requests.
8284          */
8285         virtual Model::DeleteFlowLogsOutcomeCallable DeleteFlowLogsCallable(const Model::DeleteFlowLogsRequest& request) const;
8286 
8287         /**
8288          * <p>Deletes one or more flow logs.</p><p><h3>See Also:</h3>   <a
8289          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteFlowLogs">AWS
8290          * API Reference</a></p>
8291          *
8292          * Queues the request into a thread executor and triggers associated callback when operation has finished.
8293          */
8294         virtual void DeleteFlowLogsAsync(const Model::DeleteFlowLogsRequest& request, const DeleteFlowLogsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
8295 
8296         /**
8297          * <p>Deletes the specified Amazon FPGA Image (AFI).</p><p><h3>See Also:</h3>   <a
8298          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteFpgaImage">AWS
8299          * API Reference</a></p>
8300          */
8301         virtual Model::DeleteFpgaImageOutcome DeleteFpgaImage(const Model::DeleteFpgaImageRequest& request) const;
8302 
8303         /**
8304          * <p>Deletes the specified Amazon FPGA Image (AFI).</p><p><h3>See Also:</h3>   <a
8305          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteFpgaImage">AWS
8306          * API Reference</a></p>
8307          *
8308          * returns a future to the operation so that it can be executed in parallel to other requests.
8309          */
8310         virtual Model::DeleteFpgaImageOutcomeCallable DeleteFpgaImageCallable(const Model::DeleteFpgaImageRequest& request) const;
8311 
8312         /**
8313          * <p>Deletes the specified Amazon FPGA Image (AFI).</p><p><h3>See Also:</h3>   <a
8314          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteFpgaImage">AWS
8315          * API Reference</a></p>
8316          *
8317          * Queues the request into a thread executor and triggers associated callback when operation has finished.
8318          */
8319         virtual void DeleteFpgaImageAsync(const Model::DeleteFpgaImageRequest& request, const DeleteFpgaImageResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
8320 
8321         /**
8322          * <p>Deletes the specified event window.</p> <p>For more information, see <a
8323          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/event-windows.html">Define
8324          * event windows for scheduled events</a> in the <i>Amazon EC2 User
8325          * Guide</i>.</p><p><h3>See Also:</h3>   <a
8326          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteInstanceEventWindow">AWS
8327          * API Reference</a></p>
8328          */
8329         virtual Model::DeleteInstanceEventWindowOutcome DeleteInstanceEventWindow(const Model::DeleteInstanceEventWindowRequest& request) const;
8330 
8331         /**
8332          * <p>Deletes the specified event window.</p> <p>For more information, see <a
8333          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/event-windows.html">Define
8334          * event windows for scheduled events</a> in the <i>Amazon EC2 User
8335          * Guide</i>.</p><p><h3>See Also:</h3>   <a
8336          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteInstanceEventWindow">AWS
8337          * API Reference</a></p>
8338          *
8339          * returns a future to the operation so that it can be executed in parallel to other requests.
8340          */
8341         virtual Model::DeleteInstanceEventWindowOutcomeCallable DeleteInstanceEventWindowCallable(const Model::DeleteInstanceEventWindowRequest& request) const;
8342 
8343         /**
8344          * <p>Deletes the specified event window.</p> <p>For more information, see <a
8345          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/event-windows.html">Define
8346          * event windows for scheduled events</a> in the <i>Amazon EC2 User
8347          * Guide</i>.</p><p><h3>See Also:</h3>   <a
8348          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteInstanceEventWindow">AWS
8349          * API Reference</a></p>
8350          *
8351          * Queues the request into a thread executor and triggers associated callback when operation has finished.
8352          */
8353         virtual void DeleteInstanceEventWindowAsync(const Model::DeleteInstanceEventWindowRequest& request, const DeleteInstanceEventWindowResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
8354 
8355         /**
8356          * <p>Deletes the specified internet gateway. You must detach the internet gateway
8357          * from the VPC before you can delete it.</p><p><h3>See Also:</h3>   <a
8358          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteInternetGateway">AWS
8359          * API Reference</a></p>
8360          */
8361         virtual Model::DeleteInternetGatewayOutcome DeleteInternetGateway(const Model::DeleteInternetGatewayRequest& request) const;
8362 
8363         /**
8364          * <p>Deletes the specified internet gateway. You must detach the internet gateway
8365          * from the VPC before you can delete it.</p><p><h3>See Also:</h3>   <a
8366          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteInternetGateway">AWS
8367          * API Reference</a></p>
8368          *
8369          * returns a future to the operation so that it can be executed in parallel to other requests.
8370          */
8371         virtual Model::DeleteInternetGatewayOutcomeCallable DeleteInternetGatewayCallable(const Model::DeleteInternetGatewayRequest& request) const;
8372 
8373         /**
8374          * <p>Deletes the specified internet gateway. You must detach the internet gateway
8375          * from the VPC before you can delete it.</p><p><h3>See Also:</h3>   <a
8376          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteInternetGateway">AWS
8377          * API Reference</a></p>
8378          *
8379          * Queues the request into a thread executor and triggers associated callback when operation has finished.
8380          */
8381         virtual void DeleteInternetGatewayAsync(const Model::DeleteInternetGatewayRequest& request, const DeleteInternetGatewayResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
8382 
8383         /**
8384          * <p>Deletes the specified key pair, by removing the public key from Amazon
8385          * EC2.</p><p><h3>See Also:</h3>   <a
8386          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteKeyPair">AWS
8387          * API Reference</a></p>
8388          */
8389         virtual Model::DeleteKeyPairOutcome DeleteKeyPair(const Model::DeleteKeyPairRequest& request) const;
8390 
8391         /**
8392          * <p>Deletes the specified key pair, by removing the public key from Amazon
8393          * EC2.</p><p><h3>See Also:</h3>   <a
8394          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteKeyPair">AWS
8395          * API Reference</a></p>
8396          *
8397          * returns a future to the operation so that it can be executed in parallel to other requests.
8398          */
8399         virtual Model::DeleteKeyPairOutcomeCallable DeleteKeyPairCallable(const Model::DeleteKeyPairRequest& request) const;
8400 
8401         /**
8402          * <p>Deletes the specified key pair, by removing the public key from Amazon
8403          * EC2.</p><p><h3>See Also:</h3>   <a
8404          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteKeyPair">AWS
8405          * API Reference</a></p>
8406          *
8407          * Queues the request into a thread executor and triggers associated callback when operation has finished.
8408          */
8409         virtual void DeleteKeyPairAsync(const Model::DeleteKeyPairRequest& request, const DeleteKeyPairResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
8410 
8411         /**
8412          * <p>Deletes a launch template. Deleting a launch template deletes all of its
8413          * versions.</p><p><h3>See Also:</h3>   <a
8414          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteLaunchTemplate">AWS
8415          * API Reference</a></p>
8416          */
8417         virtual Model::DeleteLaunchTemplateOutcome DeleteLaunchTemplate(const Model::DeleteLaunchTemplateRequest& request) const;
8418 
8419         /**
8420          * <p>Deletes a launch template. Deleting a launch template deletes all of its
8421          * versions.</p><p><h3>See Also:</h3>   <a
8422          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteLaunchTemplate">AWS
8423          * API Reference</a></p>
8424          *
8425          * returns a future to the operation so that it can be executed in parallel to other requests.
8426          */
8427         virtual Model::DeleteLaunchTemplateOutcomeCallable DeleteLaunchTemplateCallable(const Model::DeleteLaunchTemplateRequest& request) const;
8428 
8429         /**
8430          * <p>Deletes a launch template. Deleting a launch template deletes all of its
8431          * versions.</p><p><h3>See Also:</h3>   <a
8432          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteLaunchTemplate">AWS
8433          * API Reference</a></p>
8434          *
8435          * Queues the request into a thread executor and triggers associated callback when operation has finished.
8436          */
8437         virtual void DeleteLaunchTemplateAsync(const Model::DeleteLaunchTemplateRequest& request, const DeleteLaunchTemplateResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
8438 
8439         /**
8440          * <p>Deletes one or more versions of a launch template. You cannot delete the
8441          * default version of a launch template; you must first assign a different version
8442          * as the default. If the default version is the only version for the launch
8443          * template, you must delete the entire launch template using
8444          * <a>DeleteLaunchTemplate</a>.</p><p><h3>See Also:</h3>   <a
8445          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteLaunchTemplateVersions">AWS
8446          * API Reference</a></p>
8447          */
8448         virtual Model::DeleteLaunchTemplateVersionsOutcome DeleteLaunchTemplateVersions(const Model::DeleteLaunchTemplateVersionsRequest& request) const;
8449 
8450         /**
8451          * <p>Deletes one or more versions of a launch template. You cannot delete the
8452          * default version of a launch template; you must first assign a different version
8453          * as the default. If the default version is the only version for the launch
8454          * template, you must delete the entire launch template using
8455          * <a>DeleteLaunchTemplate</a>.</p><p><h3>See Also:</h3>   <a
8456          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteLaunchTemplateVersions">AWS
8457          * API Reference</a></p>
8458          *
8459          * returns a future to the operation so that it can be executed in parallel to other requests.
8460          */
8461         virtual Model::DeleteLaunchTemplateVersionsOutcomeCallable DeleteLaunchTemplateVersionsCallable(const Model::DeleteLaunchTemplateVersionsRequest& request) const;
8462 
8463         /**
8464          * <p>Deletes one or more versions of a launch template. You cannot delete the
8465          * default version of a launch template; you must first assign a different version
8466          * as the default. If the default version is the only version for the launch
8467          * template, you must delete the entire launch template using
8468          * <a>DeleteLaunchTemplate</a>.</p><p><h3>See Also:</h3>   <a
8469          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteLaunchTemplateVersions">AWS
8470          * API Reference</a></p>
8471          *
8472          * Queues the request into a thread executor and triggers associated callback when operation has finished.
8473          */
8474         virtual void DeleteLaunchTemplateVersionsAsync(const Model::DeleteLaunchTemplateVersionsRequest& request, const DeleteLaunchTemplateVersionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
8475 
8476         /**
8477          * <p>Deletes the specified route from the specified local gateway route
8478          * table.</p><p><h3>See Also:</h3>   <a
8479          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteLocalGatewayRoute">AWS
8480          * API Reference</a></p>
8481          */
8482         virtual Model::DeleteLocalGatewayRouteOutcome DeleteLocalGatewayRoute(const Model::DeleteLocalGatewayRouteRequest& request) const;
8483 
8484         /**
8485          * <p>Deletes the specified route from the specified local gateway route
8486          * table.</p><p><h3>See Also:</h3>   <a
8487          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteLocalGatewayRoute">AWS
8488          * API Reference</a></p>
8489          *
8490          * returns a future to the operation so that it can be executed in parallel to other requests.
8491          */
8492         virtual Model::DeleteLocalGatewayRouteOutcomeCallable DeleteLocalGatewayRouteCallable(const Model::DeleteLocalGatewayRouteRequest& request) const;
8493 
8494         /**
8495          * <p>Deletes the specified route from the specified local gateway route
8496          * table.</p><p><h3>See Also:</h3>   <a
8497          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteLocalGatewayRoute">AWS
8498          * API Reference</a></p>
8499          *
8500          * Queues the request into a thread executor and triggers associated callback when operation has finished.
8501          */
8502         virtual void DeleteLocalGatewayRouteAsync(const Model::DeleteLocalGatewayRouteRequest& request, const DeleteLocalGatewayRouteResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
8503 
8504         /**
8505          * <p>Deletes the specified association between a VPC and local gateway route
8506          * table.</p><p><h3>See Also:</h3>   <a
8507          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteLocalGatewayRouteTableVpcAssociation">AWS
8508          * API Reference</a></p>
8509          */
8510         virtual Model::DeleteLocalGatewayRouteTableVpcAssociationOutcome DeleteLocalGatewayRouteTableVpcAssociation(const Model::DeleteLocalGatewayRouteTableVpcAssociationRequest& request) const;
8511 
8512         /**
8513          * <p>Deletes the specified association between a VPC and local gateway route
8514          * table.</p><p><h3>See Also:</h3>   <a
8515          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteLocalGatewayRouteTableVpcAssociation">AWS
8516          * API Reference</a></p>
8517          *
8518          * returns a future to the operation so that it can be executed in parallel to other requests.
8519          */
8520         virtual Model::DeleteLocalGatewayRouteTableVpcAssociationOutcomeCallable DeleteLocalGatewayRouteTableVpcAssociationCallable(const Model::DeleteLocalGatewayRouteTableVpcAssociationRequest& request) const;
8521 
8522         /**
8523          * <p>Deletes the specified association between a VPC and local gateway route
8524          * table.</p><p><h3>See Also:</h3>   <a
8525          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteLocalGatewayRouteTableVpcAssociation">AWS
8526          * API Reference</a></p>
8527          *
8528          * Queues the request into a thread executor and triggers associated callback when operation has finished.
8529          */
8530         virtual void DeleteLocalGatewayRouteTableVpcAssociationAsync(const Model::DeleteLocalGatewayRouteTableVpcAssociationRequest& request, const DeleteLocalGatewayRouteTableVpcAssociationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
8531 
8532         /**
8533          * <p>Deletes the specified managed prefix list. You must first remove all
8534          * references to the prefix list in your resources.</p><p><h3>See Also:</h3>   <a
8535          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteManagedPrefixList">AWS
8536          * API Reference</a></p>
8537          */
8538         virtual Model::DeleteManagedPrefixListOutcome DeleteManagedPrefixList(const Model::DeleteManagedPrefixListRequest& request) const;
8539 
8540         /**
8541          * <p>Deletes the specified managed prefix list. You must first remove all
8542          * references to the prefix list in your resources.</p><p><h3>See Also:</h3>   <a
8543          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteManagedPrefixList">AWS
8544          * API Reference</a></p>
8545          *
8546          * returns a future to the operation so that it can be executed in parallel to other requests.
8547          */
8548         virtual Model::DeleteManagedPrefixListOutcomeCallable DeleteManagedPrefixListCallable(const Model::DeleteManagedPrefixListRequest& request) const;
8549 
8550         /**
8551          * <p>Deletes the specified managed prefix list. You must first remove all
8552          * references to the prefix list in your resources.</p><p><h3>See Also:</h3>   <a
8553          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteManagedPrefixList">AWS
8554          * API Reference</a></p>
8555          *
8556          * Queues the request into a thread executor and triggers associated callback when operation has finished.
8557          */
8558         virtual void DeleteManagedPrefixListAsync(const Model::DeleteManagedPrefixListRequest& request, const DeleteManagedPrefixListResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
8559 
8560         /**
8561          * <p>Deletes the specified NAT gateway. Deleting a public NAT gateway
8562          * disassociates its Elastic IP address, but does not release the address from your
8563          * account. Deleting a NAT gateway does not delete any NAT gateway routes in your
8564          * route tables.</p><p><h3>See Also:</h3>   <a
8565          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteNatGateway">AWS
8566          * API Reference</a></p>
8567          */
8568         virtual Model::DeleteNatGatewayOutcome DeleteNatGateway(const Model::DeleteNatGatewayRequest& request) const;
8569 
8570         /**
8571          * <p>Deletes the specified NAT gateway. Deleting a public NAT gateway
8572          * disassociates its Elastic IP address, but does not release the address from your
8573          * account. Deleting a NAT gateway does not delete any NAT gateway routes in your
8574          * route tables.</p><p><h3>See Also:</h3>   <a
8575          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteNatGateway">AWS
8576          * API Reference</a></p>
8577          *
8578          * returns a future to the operation so that it can be executed in parallel to other requests.
8579          */
8580         virtual Model::DeleteNatGatewayOutcomeCallable DeleteNatGatewayCallable(const Model::DeleteNatGatewayRequest& request) const;
8581 
8582         /**
8583          * <p>Deletes the specified NAT gateway. Deleting a public NAT gateway
8584          * disassociates its Elastic IP address, but does not release the address from your
8585          * account. Deleting a NAT gateway does not delete any NAT gateway routes in your
8586          * route tables.</p><p><h3>See Also:</h3>   <a
8587          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteNatGateway">AWS
8588          * API Reference</a></p>
8589          *
8590          * Queues the request into a thread executor and triggers associated callback when operation has finished.
8591          */
8592         virtual void DeleteNatGatewayAsync(const Model::DeleteNatGatewayRequest& request, const DeleteNatGatewayResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
8593 
8594         /**
8595          * <p>Deletes the specified network ACL. You can't delete the ACL if it's
8596          * associated with any subnets. You can't delete the default network
8597          * ACL.</p><p><h3>See Also:</h3>   <a
8598          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteNetworkAcl">AWS
8599          * API Reference</a></p>
8600          */
8601         virtual Model::DeleteNetworkAclOutcome DeleteNetworkAcl(const Model::DeleteNetworkAclRequest& request) const;
8602 
8603         /**
8604          * <p>Deletes the specified network ACL. You can't delete the ACL if it's
8605          * associated with any subnets. You can't delete the default network
8606          * ACL.</p><p><h3>See Also:</h3>   <a
8607          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteNetworkAcl">AWS
8608          * API Reference</a></p>
8609          *
8610          * returns a future to the operation so that it can be executed in parallel to other requests.
8611          */
8612         virtual Model::DeleteNetworkAclOutcomeCallable DeleteNetworkAclCallable(const Model::DeleteNetworkAclRequest& request) const;
8613 
8614         /**
8615          * <p>Deletes the specified network ACL. You can't delete the ACL if it's
8616          * associated with any subnets. You can't delete the default network
8617          * ACL.</p><p><h3>See Also:</h3>   <a
8618          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteNetworkAcl">AWS
8619          * API Reference</a></p>
8620          *
8621          * Queues the request into a thread executor and triggers associated callback when operation has finished.
8622          */
8623         virtual void DeleteNetworkAclAsync(const Model::DeleteNetworkAclRequest& request, const DeleteNetworkAclResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
8624 
8625         /**
8626          * <p>Deletes the specified ingress or egress entry (rule) from the specified
8627          * network ACL.</p><p><h3>See Also:</h3>   <a
8628          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteNetworkAclEntry">AWS
8629          * API Reference</a></p>
8630          */
8631         virtual Model::DeleteNetworkAclEntryOutcome DeleteNetworkAclEntry(const Model::DeleteNetworkAclEntryRequest& request) const;
8632 
8633         /**
8634          * <p>Deletes the specified ingress or egress entry (rule) from the specified
8635          * network ACL.</p><p><h3>See Also:</h3>   <a
8636          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteNetworkAclEntry">AWS
8637          * API Reference</a></p>
8638          *
8639          * returns a future to the operation so that it can be executed in parallel to other requests.
8640          */
8641         virtual Model::DeleteNetworkAclEntryOutcomeCallable DeleteNetworkAclEntryCallable(const Model::DeleteNetworkAclEntryRequest& request) const;
8642 
8643         /**
8644          * <p>Deletes the specified ingress or egress entry (rule) from the specified
8645          * network ACL.</p><p><h3>See Also:</h3>   <a
8646          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteNetworkAclEntry">AWS
8647          * API Reference</a></p>
8648          *
8649          * Queues the request into a thread executor and triggers associated callback when operation has finished.
8650          */
8651         virtual void DeleteNetworkAclEntryAsync(const Model::DeleteNetworkAclEntryRequest& request, const DeleteNetworkAclEntryResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
8652 
8653         /**
8654          * <p>Deletes the specified network insights analysis.</p><p><h3>See Also:</h3>
8655          * <a
8656          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteNetworkInsightsAnalysis">AWS
8657          * API Reference</a></p>
8658          */
8659         virtual Model::DeleteNetworkInsightsAnalysisOutcome DeleteNetworkInsightsAnalysis(const Model::DeleteNetworkInsightsAnalysisRequest& request) const;
8660 
8661         /**
8662          * <p>Deletes the specified network insights analysis.</p><p><h3>See Also:</h3>
8663          * <a
8664          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteNetworkInsightsAnalysis">AWS
8665          * API Reference</a></p>
8666          *
8667          * returns a future to the operation so that it can be executed in parallel to other requests.
8668          */
8669         virtual Model::DeleteNetworkInsightsAnalysisOutcomeCallable DeleteNetworkInsightsAnalysisCallable(const Model::DeleteNetworkInsightsAnalysisRequest& request) const;
8670 
8671         /**
8672          * <p>Deletes the specified network insights analysis.</p><p><h3>See Also:</h3>
8673          * <a
8674          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteNetworkInsightsAnalysis">AWS
8675          * API Reference</a></p>
8676          *
8677          * Queues the request into a thread executor and triggers associated callback when operation has finished.
8678          */
8679         virtual void DeleteNetworkInsightsAnalysisAsync(const Model::DeleteNetworkInsightsAnalysisRequest& request, const DeleteNetworkInsightsAnalysisResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
8680 
8681         /**
8682          * <p>Deletes the specified path.</p><p><h3>See Also:</h3>   <a
8683          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteNetworkInsightsPath">AWS
8684          * API Reference</a></p>
8685          */
8686         virtual Model::DeleteNetworkInsightsPathOutcome DeleteNetworkInsightsPath(const Model::DeleteNetworkInsightsPathRequest& request) const;
8687 
8688         /**
8689          * <p>Deletes the specified path.</p><p><h3>See Also:</h3>   <a
8690          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteNetworkInsightsPath">AWS
8691          * API Reference</a></p>
8692          *
8693          * returns a future to the operation so that it can be executed in parallel to other requests.
8694          */
8695         virtual Model::DeleteNetworkInsightsPathOutcomeCallable DeleteNetworkInsightsPathCallable(const Model::DeleteNetworkInsightsPathRequest& request) const;
8696 
8697         /**
8698          * <p>Deletes the specified path.</p><p><h3>See Also:</h3>   <a
8699          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteNetworkInsightsPath">AWS
8700          * API Reference</a></p>
8701          *
8702          * Queues the request into a thread executor and triggers associated callback when operation has finished.
8703          */
8704         virtual void DeleteNetworkInsightsPathAsync(const Model::DeleteNetworkInsightsPathRequest& request, const DeleteNetworkInsightsPathResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
8705 
8706         /**
8707          * <p>Deletes the specified network interface. You must detach the network
8708          * interface before you can delete it.</p><p><h3>See Also:</h3>   <a
8709          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteNetworkInterface">AWS
8710          * API Reference</a></p>
8711          */
8712         virtual Model::DeleteNetworkInterfaceOutcome DeleteNetworkInterface(const Model::DeleteNetworkInterfaceRequest& request) const;
8713 
8714         /**
8715          * <p>Deletes the specified network interface. You must detach the network
8716          * interface before you can delete it.</p><p><h3>See Also:</h3>   <a
8717          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteNetworkInterface">AWS
8718          * API Reference</a></p>
8719          *
8720          * returns a future to the operation so that it can be executed in parallel to other requests.
8721          */
8722         virtual Model::DeleteNetworkInterfaceOutcomeCallable DeleteNetworkInterfaceCallable(const Model::DeleteNetworkInterfaceRequest& request) const;
8723 
8724         /**
8725          * <p>Deletes the specified network interface. You must detach the network
8726          * interface before you can delete it.</p><p><h3>See Also:</h3>   <a
8727          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteNetworkInterface">AWS
8728          * API Reference</a></p>
8729          *
8730          * Queues the request into a thread executor and triggers associated callback when operation has finished.
8731          */
8732         virtual void DeleteNetworkInterfaceAsync(const Model::DeleteNetworkInterfaceRequest& request, const DeleteNetworkInterfaceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
8733 
8734         /**
8735          * <p>Deletes a permission for a network interface. By default, you cannot delete
8736          * the permission if the account for which you're removing the permission has
8737          * attached the network interface to an instance. However, you can force delete the
8738          * permission, regardless of any attachment.</p><p><h3>See Also:</h3>   <a
8739          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteNetworkInterfacePermission">AWS
8740          * API Reference</a></p>
8741          */
8742         virtual Model::DeleteNetworkInterfacePermissionOutcome DeleteNetworkInterfacePermission(const Model::DeleteNetworkInterfacePermissionRequest& request) const;
8743 
8744         /**
8745          * <p>Deletes a permission for a network interface. By default, you cannot delete
8746          * the permission if the account for which you're removing the permission has
8747          * attached the network interface to an instance. However, you can force delete the
8748          * permission, regardless of any attachment.</p><p><h3>See Also:</h3>   <a
8749          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteNetworkInterfacePermission">AWS
8750          * API Reference</a></p>
8751          *
8752          * returns a future to the operation so that it can be executed in parallel to other requests.
8753          */
8754         virtual Model::DeleteNetworkInterfacePermissionOutcomeCallable DeleteNetworkInterfacePermissionCallable(const Model::DeleteNetworkInterfacePermissionRequest& request) const;
8755 
8756         /**
8757          * <p>Deletes a permission for a network interface. By default, you cannot delete
8758          * the permission if the account for which you're removing the permission has
8759          * attached the network interface to an instance. However, you can force delete the
8760          * permission, regardless of any attachment.</p><p><h3>See Also:</h3>   <a
8761          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteNetworkInterfacePermission">AWS
8762          * API Reference</a></p>
8763          *
8764          * Queues the request into a thread executor and triggers associated callback when operation has finished.
8765          */
8766         virtual void DeleteNetworkInterfacePermissionAsync(const Model::DeleteNetworkInterfacePermissionRequest& request, const DeleteNetworkInterfacePermissionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
8767 
8768         /**
8769          * <p>Deletes the specified placement group. You must terminate all instances in
8770          * the placement group before you can delete the placement group. For more
8771          * information, see <a
8772          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html">Placement
8773          * groups</a> in the <i>Amazon EC2 User Guide</i>.</p><p><h3>See Also:</h3>   <a
8774          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeletePlacementGroup">AWS
8775          * API Reference</a></p>
8776          */
8777         virtual Model::DeletePlacementGroupOutcome DeletePlacementGroup(const Model::DeletePlacementGroupRequest& request) const;
8778 
8779         /**
8780          * <p>Deletes the specified placement group. You must terminate all instances in
8781          * the placement group before you can delete the placement group. For more
8782          * information, see <a
8783          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html">Placement
8784          * groups</a> in the <i>Amazon EC2 User Guide</i>.</p><p><h3>See Also:</h3>   <a
8785          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeletePlacementGroup">AWS
8786          * API Reference</a></p>
8787          *
8788          * returns a future to the operation so that it can be executed in parallel to other requests.
8789          */
8790         virtual Model::DeletePlacementGroupOutcomeCallable DeletePlacementGroupCallable(const Model::DeletePlacementGroupRequest& request) const;
8791 
8792         /**
8793          * <p>Deletes the specified placement group. You must terminate all instances in
8794          * the placement group before you can delete the placement group. For more
8795          * information, see <a
8796          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html">Placement
8797          * groups</a> in the <i>Amazon EC2 User Guide</i>.</p><p><h3>See Also:</h3>   <a
8798          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeletePlacementGroup">AWS
8799          * API Reference</a></p>
8800          *
8801          * Queues the request into a thread executor and triggers associated callback when operation has finished.
8802          */
8803         virtual void DeletePlacementGroupAsync(const Model::DeletePlacementGroupRequest& request, const DeletePlacementGroupResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
8804 
8805         /**
8806          * <p>Deletes the queued purchases for the specified Reserved
8807          * Instances.</p><p><h3>See Also:</h3>   <a
8808          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteQueuedReservedInstances">AWS
8809          * API Reference</a></p>
8810          */
8811         virtual Model::DeleteQueuedReservedInstancesOutcome DeleteQueuedReservedInstances(const Model::DeleteQueuedReservedInstancesRequest& request) const;
8812 
8813         /**
8814          * <p>Deletes the queued purchases for the specified Reserved
8815          * Instances.</p><p><h3>See Also:</h3>   <a
8816          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteQueuedReservedInstances">AWS
8817          * API Reference</a></p>
8818          *
8819          * returns a future to the operation so that it can be executed in parallel to other requests.
8820          */
8821         virtual Model::DeleteQueuedReservedInstancesOutcomeCallable DeleteQueuedReservedInstancesCallable(const Model::DeleteQueuedReservedInstancesRequest& request) const;
8822 
8823         /**
8824          * <p>Deletes the queued purchases for the specified Reserved
8825          * Instances.</p><p><h3>See Also:</h3>   <a
8826          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteQueuedReservedInstances">AWS
8827          * API Reference</a></p>
8828          *
8829          * Queues the request into a thread executor and triggers associated callback when operation has finished.
8830          */
8831         virtual void DeleteQueuedReservedInstancesAsync(const Model::DeleteQueuedReservedInstancesRequest& request, const DeleteQueuedReservedInstancesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
8832 
8833         /**
8834          * <p>Deletes the specified route from the specified route table.</p><p><h3>See
8835          * Also:</h3>   <a
8836          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteRoute">AWS API
8837          * Reference</a></p>
8838          */
8839         virtual Model::DeleteRouteOutcome DeleteRoute(const Model::DeleteRouteRequest& request) const;
8840 
8841         /**
8842          * <p>Deletes the specified route from the specified route table.</p><p><h3>See
8843          * Also:</h3>   <a
8844          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteRoute">AWS API
8845          * Reference</a></p>
8846          *
8847          * returns a future to the operation so that it can be executed in parallel to other requests.
8848          */
8849         virtual Model::DeleteRouteOutcomeCallable DeleteRouteCallable(const Model::DeleteRouteRequest& request) const;
8850 
8851         /**
8852          * <p>Deletes the specified route from the specified route table.</p><p><h3>See
8853          * Also:</h3>   <a
8854          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteRoute">AWS API
8855          * Reference</a></p>
8856          *
8857          * Queues the request into a thread executor and triggers associated callback when operation has finished.
8858          */
8859         virtual void DeleteRouteAsync(const Model::DeleteRouteRequest& request, const DeleteRouteResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
8860 
8861         /**
8862          * <p>Deletes the specified route table. You must disassociate the route table from
8863          * any subnets before you can delete it. You can't delete the main route
8864          * table.</p><p><h3>See Also:</h3>   <a
8865          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteRouteTable">AWS
8866          * API Reference</a></p>
8867          */
8868         virtual Model::DeleteRouteTableOutcome DeleteRouteTable(const Model::DeleteRouteTableRequest& request) const;
8869 
8870         /**
8871          * <p>Deletes the specified route table. You must disassociate the route table from
8872          * any subnets before you can delete it. You can't delete the main route
8873          * table.</p><p><h3>See Also:</h3>   <a
8874          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteRouteTable">AWS
8875          * API Reference</a></p>
8876          *
8877          * returns a future to the operation so that it can be executed in parallel to other requests.
8878          */
8879         virtual Model::DeleteRouteTableOutcomeCallable DeleteRouteTableCallable(const Model::DeleteRouteTableRequest& request) const;
8880 
8881         /**
8882          * <p>Deletes the specified route table. You must disassociate the route table from
8883          * any subnets before you can delete it. You can't delete the main route
8884          * table.</p><p><h3>See Also:</h3>   <a
8885          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteRouteTable">AWS
8886          * API Reference</a></p>
8887          *
8888          * Queues the request into a thread executor and triggers associated callback when operation has finished.
8889          */
8890         virtual void DeleteRouteTableAsync(const Model::DeleteRouteTableRequest& request, const DeleteRouteTableResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
8891 
8892         /**
8893          * <p>Deletes a security group.</p> <p>If you attempt to delete a security group
8894          * that is associated with an instance, or is referenced by another security group,
8895          * the operation fails with <code>InvalidGroup.InUse</code> in EC2-Classic or
8896          * <code>DependencyViolation</code> in EC2-VPC.</p><p><h3>See Also:</h3>   <a
8897          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteSecurityGroup">AWS
8898          * API Reference</a></p>
8899          */
8900         virtual Model::DeleteSecurityGroupOutcome DeleteSecurityGroup(const Model::DeleteSecurityGroupRequest& request) const;
8901 
8902         /**
8903          * <p>Deletes a security group.</p> <p>If you attempt to delete a security group
8904          * that is associated with an instance, or is referenced by another security group,
8905          * the operation fails with <code>InvalidGroup.InUse</code> in EC2-Classic or
8906          * <code>DependencyViolation</code> in EC2-VPC.</p><p><h3>See Also:</h3>   <a
8907          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteSecurityGroup">AWS
8908          * API Reference</a></p>
8909          *
8910          * returns a future to the operation so that it can be executed in parallel to other requests.
8911          */
8912         virtual Model::DeleteSecurityGroupOutcomeCallable DeleteSecurityGroupCallable(const Model::DeleteSecurityGroupRequest& request) const;
8913 
8914         /**
8915          * <p>Deletes a security group.</p> <p>If you attempt to delete a security group
8916          * that is associated with an instance, or is referenced by another security group,
8917          * the operation fails with <code>InvalidGroup.InUse</code> in EC2-Classic or
8918          * <code>DependencyViolation</code> in EC2-VPC.</p><p><h3>See Also:</h3>   <a
8919          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteSecurityGroup">AWS
8920          * API Reference</a></p>
8921          *
8922          * Queues the request into a thread executor and triggers associated callback when operation has finished.
8923          */
8924         virtual void DeleteSecurityGroupAsync(const Model::DeleteSecurityGroupRequest& request, const DeleteSecurityGroupResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
8925 
8926         /**
8927          * <p>Deletes the specified snapshot.</p> <p>When you make periodic snapshots of a
8928          * volume, the snapshots are incremental, and only the blocks on the device that
8929          * have changed since your last snapshot are saved in the new snapshot. When you
8930          * delete a snapshot, only the data not needed for any other snapshot is removed.
8931          * So regardless of which prior snapshots have been deleted, all active snapshots
8932          * will have access to all the information needed to restore the volume.</p> <p>You
8933          * cannot delete a snapshot of the root device of an EBS volume used by a
8934          * registered AMI. You must first de-register the AMI before you can delete the
8935          * snapshot.</p> <p>For more information, see <a
8936          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-deleting-snapshot.html">Delete
8937          * an Amazon EBS snapshot</a> in the <i>Amazon Elastic Compute Cloud User
8938          * Guide</i>.</p><p><h3>See Also:</h3>   <a
8939          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteSnapshot">AWS
8940          * API Reference</a></p>
8941          */
8942         virtual Model::DeleteSnapshotOutcome DeleteSnapshot(const Model::DeleteSnapshotRequest& request) const;
8943 
8944         /**
8945          * <p>Deletes the specified snapshot.</p> <p>When you make periodic snapshots of a
8946          * volume, the snapshots are incremental, and only the blocks on the device that
8947          * have changed since your last snapshot are saved in the new snapshot. When you
8948          * delete a snapshot, only the data not needed for any other snapshot is removed.
8949          * So regardless of which prior snapshots have been deleted, all active snapshots
8950          * will have access to all the information needed to restore the volume.</p> <p>You
8951          * cannot delete a snapshot of the root device of an EBS volume used by a
8952          * registered AMI. You must first de-register the AMI before you can delete the
8953          * snapshot.</p> <p>For more information, see <a
8954          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-deleting-snapshot.html">Delete
8955          * an Amazon EBS snapshot</a> in the <i>Amazon Elastic Compute Cloud User
8956          * Guide</i>.</p><p><h3>See Also:</h3>   <a
8957          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteSnapshot">AWS
8958          * API Reference</a></p>
8959          *
8960          * returns a future to the operation so that it can be executed in parallel to other requests.
8961          */
8962         virtual Model::DeleteSnapshotOutcomeCallable DeleteSnapshotCallable(const Model::DeleteSnapshotRequest& request) const;
8963 
8964         /**
8965          * <p>Deletes the specified snapshot.</p> <p>When you make periodic snapshots of a
8966          * volume, the snapshots are incremental, and only the blocks on the device that
8967          * have changed since your last snapshot are saved in the new snapshot. When you
8968          * delete a snapshot, only the data not needed for any other snapshot is removed.
8969          * So regardless of which prior snapshots have been deleted, all active snapshots
8970          * will have access to all the information needed to restore the volume.</p> <p>You
8971          * cannot delete a snapshot of the root device of an EBS volume used by a
8972          * registered AMI. You must first de-register the AMI before you can delete the
8973          * snapshot.</p> <p>For more information, see <a
8974          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-deleting-snapshot.html">Delete
8975          * an Amazon EBS snapshot</a> in the <i>Amazon Elastic Compute Cloud User
8976          * Guide</i>.</p><p><h3>See Also:</h3>   <a
8977          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteSnapshot">AWS
8978          * API Reference</a></p>
8979          *
8980          * Queues the request into a thread executor and triggers associated callback when operation has finished.
8981          */
8982         virtual void DeleteSnapshotAsync(const Model::DeleteSnapshotRequest& request, const DeleteSnapshotResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
8983 
8984         /**
8985          * <p>Deletes the data feed for Spot Instances.</p><p><h3>See Also:</h3>   <a
8986          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteSpotDatafeedSubscription">AWS
8987          * API Reference</a></p>
8988          */
8989         virtual Model::DeleteSpotDatafeedSubscriptionOutcome DeleteSpotDatafeedSubscription(const Model::DeleteSpotDatafeedSubscriptionRequest& request) const;
8990 
8991         /**
8992          * <p>Deletes the data feed for Spot Instances.</p><p><h3>See Also:</h3>   <a
8993          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteSpotDatafeedSubscription">AWS
8994          * API Reference</a></p>
8995          *
8996          * returns a future to the operation so that it can be executed in parallel to other requests.
8997          */
8998         virtual Model::DeleteSpotDatafeedSubscriptionOutcomeCallable DeleteSpotDatafeedSubscriptionCallable(const Model::DeleteSpotDatafeedSubscriptionRequest& request) const;
8999 
9000         /**
9001          * <p>Deletes the data feed for Spot Instances.</p><p><h3>See Also:</h3>   <a
9002          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteSpotDatafeedSubscription">AWS
9003          * API Reference</a></p>
9004          *
9005          * Queues the request into a thread executor and triggers associated callback when operation has finished.
9006          */
9007         virtual void DeleteSpotDatafeedSubscriptionAsync(const Model::DeleteSpotDatafeedSubscriptionRequest& request, const DeleteSpotDatafeedSubscriptionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
9008 
9009         /**
9010          * <p>Deletes the specified subnet. You must terminate all running instances in the
9011          * subnet before you can delete the subnet.</p><p><h3>See Also:</h3>   <a
9012          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteSubnet">AWS
9013          * API Reference</a></p>
9014          */
9015         virtual Model::DeleteSubnetOutcome DeleteSubnet(const Model::DeleteSubnetRequest& request) const;
9016 
9017         /**
9018          * <p>Deletes the specified subnet. You must terminate all running instances in the
9019          * subnet before you can delete the subnet.</p><p><h3>See Also:</h3>   <a
9020          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteSubnet">AWS
9021          * API Reference</a></p>
9022          *
9023          * returns a future to the operation so that it can be executed in parallel to other requests.
9024          */
9025         virtual Model::DeleteSubnetOutcomeCallable DeleteSubnetCallable(const Model::DeleteSubnetRequest& request) const;
9026 
9027         /**
9028          * <p>Deletes the specified subnet. You must terminate all running instances in the
9029          * subnet before you can delete the subnet.</p><p><h3>See Also:</h3>   <a
9030          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteSubnet">AWS
9031          * API Reference</a></p>
9032          *
9033          * Queues the request into a thread executor and triggers associated callback when operation has finished.
9034          */
9035         virtual void DeleteSubnetAsync(const Model::DeleteSubnetRequest& request, const DeleteSubnetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
9036 
9037         /**
9038          * <p>Deletes a subnet CIDR reservation.</p><p><h3>See Also:</h3>   <a
9039          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteSubnetCidrReservation">AWS
9040          * API Reference</a></p>
9041          */
9042         virtual Model::DeleteSubnetCidrReservationOutcome DeleteSubnetCidrReservation(const Model::DeleteSubnetCidrReservationRequest& request) const;
9043 
9044         /**
9045          * <p>Deletes a subnet CIDR reservation.</p><p><h3>See Also:</h3>   <a
9046          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteSubnetCidrReservation">AWS
9047          * API Reference</a></p>
9048          *
9049          * returns a future to the operation so that it can be executed in parallel to other requests.
9050          */
9051         virtual Model::DeleteSubnetCidrReservationOutcomeCallable DeleteSubnetCidrReservationCallable(const Model::DeleteSubnetCidrReservationRequest& request) const;
9052 
9053         /**
9054          * <p>Deletes a subnet CIDR reservation.</p><p><h3>See Also:</h3>   <a
9055          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteSubnetCidrReservation">AWS
9056          * API Reference</a></p>
9057          *
9058          * Queues the request into a thread executor and triggers associated callback when operation has finished.
9059          */
9060         virtual void DeleteSubnetCidrReservationAsync(const Model::DeleteSubnetCidrReservationRequest& request, const DeleteSubnetCidrReservationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
9061 
9062         /**
9063          * <p>Deletes the specified set of tags from the specified set of resources.</p>
9064          * <p>To list the current tags, use <a>DescribeTags</a>. For more information about
9065          * tags, see <a
9066          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html">Tagging
9067          * Your Resources</a> in the <i>Amazon Elastic Compute Cloud User
9068          * Guide</i>.</p><p><h3>See Also:</h3>   <a
9069          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteTags">AWS API
9070          * Reference</a></p>
9071          */
9072         virtual Model::DeleteTagsOutcome DeleteTags(const Model::DeleteTagsRequest& request) const;
9073 
9074         /**
9075          * <p>Deletes the specified set of tags from the specified set of resources.</p>
9076          * <p>To list the current tags, use <a>DescribeTags</a>. For more information about
9077          * tags, see <a
9078          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html">Tagging
9079          * Your Resources</a> in the <i>Amazon Elastic Compute Cloud User
9080          * Guide</i>.</p><p><h3>See Also:</h3>   <a
9081          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteTags">AWS API
9082          * Reference</a></p>
9083          *
9084          * returns a future to the operation so that it can be executed in parallel to other requests.
9085          */
9086         virtual Model::DeleteTagsOutcomeCallable DeleteTagsCallable(const Model::DeleteTagsRequest& request) const;
9087 
9088         /**
9089          * <p>Deletes the specified set of tags from the specified set of resources.</p>
9090          * <p>To list the current tags, use <a>DescribeTags</a>. For more information about
9091          * tags, see <a
9092          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html">Tagging
9093          * Your Resources</a> in the <i>Amazon Elastic Compute Cloud User
9094          * Guide</i>.</p><p><h3>See Also:</h3>   <a
9095          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteTags">AWS API
9096          * Reference</a></p>
9097          *
9098          * Queues the request into a thread executor and triggers associated callback when operation has finished.
9099          */
9100         virtual void DeleteTagsAsync(const Model::DeleteTagsRequest& request, const DeleteTagsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
9101 
9102         /**
9103          * <p>Deletes the specified Traffic Mirror filter.</p> <p>You cannot delete a
9104          * Traffic Mirror filter that is in use by a Traffic Mirror session.</p><p><h3>See
9105          * Also:</h3>   <a
9106          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteTrafficMirrorFilter">AWS
9107          * API Reference</a></p>
9108          */
9109         virtual Model::DeleteTrafficMirrorFilterOutcome DeleteTrafficMirrorFilter(const Model::DeleteTrafficMirrorFilterRequest& request) const;
9110 
9111         /**
9112          * <p>Deletes the specified Traffic Mirror filter.</p> <p>You cannot delete a
9113          * Traffic Mirror filter that is in use by a Traffic Mirror session.</p><p><h3>See
9114          * Also:</h3>   <a
9115          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteTrafficMirrorFilter">AWS
9116          * API Reference</a></p>
9117          *
9118          * returns a future to the operation so that it can be executed in parallel to other requests.
9119          */
9120         virtual Model::DeleteTrafficMirrorFilterOutcomeCallable DeleteTrafficMirrorFilterCallable(const Model::DeleteTrafficMirrorFilterRequest& request) const;
9121 
9122         /**
9123          * <p>Deletes the specified Traffic Mirror filter.</p> <p>You cannot delete a
9124          * Traffic Mirror filter that is in use by a Traffic Mirror session.</p><p><h3>See
9125          * Also:</h3>   <a
9126          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteTrafficMirrorFilter">AWS
9127          * API Reference</a></p>
9128          *
9129          * Queues the request into a thread executor and triggers associated callback when operation has finished.
9130          */
9131         virtual void DeleteTrafficMirrorFilterAsync(const Model::DeleteTrafficMirrorFilterRequest& request, const DeleteTrafficMirrorFilterResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
9132 
9133         /**
9134          * <p>Deletes the specified Traffic Mirror rule.</p><p><h3>See Also:</h3>   <a
9135          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteTrafficMirrorFilterRule">AWS
9136          * API Reference</a></p>
9137          */
9138         virtual Model::DeleteTrafficMirrorFilterRuleOutcome DeleteTrafficMirrorFilterRule(const Model::DeleteTrafficMirrorFilterRuleRequest& request) const;
9139 
9140         /**
9141          * <p>Deletes the specified Traffic Mirror rule.</p><p><h3>See Also:</h3>   <a
9142          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteTrafficMirrorFilterRule">AWS
9143          * API Reference</a></p>
9144          *
9145          * returns a future to the operation so that it can be executed in parallel to other requests.
9146          */
9147         virtual Model::DeleteTrafficMirrorFilterRuleOutcomeCallable DeleteTrafficMirrorFilterRuleCallable(const Model::DeleteTrafficMirrorFilterRuleRequest& request) const;
9148 
9149         /**
9150          * <p>Deletes the specified Traffic Mirror rule.</p><p><h3>See Also:</h3>   <a
9151          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteTrafficMirrorFilterRule">AWS
9152          * API Reference</a></p>
9153          *
9154          * Queues the request into a thread executor and triggers associated callback when operation has finished.
9155          */
9156         virtual void DeleteTrafficMirrorFilterRuleAsync(const Model::DeleteTrafficMirrorFilterRuleRequest& request, const DeleteTrafficMirrorFilterRuleResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
9157 
9158         /**
9159          * <p>Deletes the specified Traffic Mirror session.</p><p><h3>See Also:</h3>   <a
9160          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteTrafficMirrorSession">AWS
9161          * API Reference</a></p>
9162          */
9163         virtual Model::DeleteTrafficMirrorSessionOutcome DeleteTrafficMirrorSession(const Model::DeleteTrafficMirrorSessionRequest& request) const;
9164 
9165         /**
9166          * <p>Deletes the specified Traffic Mirror session.</p><p><h3>See Also:</h3>   <a
9167          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteTrafficMirrorSession">AWS
9168          * API Reference</a></p>
9169          *
9170          * returns a future to the operation so that it can be executed in parallel to other requests.
9171          */
9172         virtual Model::DeleteTrafficMirrorSessionOutcomeCallable DeleteTrafficMirrorSessionCallable(const Model::DeleteTrafficMirrorSessionRequest& request) const;
9173 
9174         /**
9175          * <p>Deletes the specified Traffic Mirror session.</p><p><h3>See Also:</h3>   <a
9176          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteTrafficMirrorSession">AWS
9177          * API Reference</a></p>
9178          *
9179          * Queues the request into a thread executor and triggers associated callback when operation has finished.
9180          */
9181         virtual void DeleteTrafficMirrorSessionAsync(const Model::DeleteTrafficMirrorSessionRequest& request, const DeleteTrafficMirrorSessionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
9182 
9183         /**
9184          * <p>Deletes the specified Traffic Mirror target.</p> <p>You cannot delete a
9185          * Traffic Mirror target that is in use by a Traffic Mirror session.</p><p><h3>See
9186          * Also:</h3>   <a
9187          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteTrafficMirrorTarget">AWS
9188          * API Reference</a></p>
9189          */
9190         virtual Model::DeleteTrafficMirrorTargetOutcome DeleteTrafficMirrorTarget(const Model::DeleteTrafficMirrorTargetRequest& request) const;
9191 
9192         /**
9193          * <p>Deletes the specified Traffic Mirror target.</p> <p>You cannot delete a
9194          * Traffic Mirror target that is in use by a Traffic Mirror session.</p><p><h3>See
9195          * Also:</h3>   <a
9196          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteTrafficMirrorTarget">AWS
9197          * API Reference</a></p>
9198          *
9199          * returns a future to the operation so that it can be executed in parallel to other requests.
9200          */
9201         virtual Model::DeleteTrafficMirrorTargetOutcomeCallable DeleteTrafficMirrorTargetCallable(const Model::DeleteTrafficMirrorTargetRequest& request) const;
9202 
9203         /**
9204          * <p>Deletes the specified Traffic Mirror target.</p> <p>You cannot delete a
9205          * Traffic Mirror target that is in use by a Traffic Mirror session.</p><p><h3>See
9206          * Also:</h3>   <a
9207          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteTrafficMirrorTarget">AWS
9208          * API Reference</a></p>
9209          *
9210          * Queues the request into a thread executor and triggers associated callback when operation has finished.
9211          */
9212         virtual void DeleteTrafficMirrorTargetAsync(const Model::DeleteTrafficMirrorTargetRequest& request, const DeleteTrafficMirrorTargetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
9213 
9214         /**
9215          * <p>Deletes the specified transit gateway.</p><p><h3>See Also:</h3>   <a
9216          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteTransitGateway">AWS
9217          * API Reference</a></p>
9218          */
9219         virtual Model::DeleteTransitGatewayOutcome DeleteTransitGateway(const Model::DeleteTransitGatewayRequest& request) const;
9220 
9221         /**
9222          * <p>Deletes the specified transit gateway.</p><p><h3>See Also:</h3>   <a
9223          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteTransitGateway">AWS
9224          * API Reference</a></p>
9225          *
9226          * returns a future to the operation so that it can be executed in parallel to other requests.
9227          */
9228         virtual Model::DeleteTransitGatewayOutcomeCallable DeleteTransitGatewayCallable(const Model::DeleteTransitGatewayRequest& request) const;
9229 
9230         /**
9231          * <p>Deletes the specified transit gateway.</p><p><h3>See Also:</h3>   <a
9232          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteTransitGateway">AWS
9233          * API Reference</a></p>
9234          *
9235          * Queues the request into a thread executor and triggers associated callback when operation has finished.
9236          */
9237         virtual void DeleteTransitGatewayAsync(const Model::DeleteTransitGatewayRequest& request, const DeleteTransitGatewayResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
9238 
9239         /**
9240          * <p>Deletes the specified Connect attachment. You must first delete any Connect
9241          * peers for the attachment.</p><p><h3>See Also:</h3>   <a
9242          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteTransitGatewayConnect">AWS
9243          * API Reference</a></p>
9244          */
9245         virtual Model::DeleteTransitGatewayConnectOutcome DeleteTransitGatewayConnect(const Model::DeleteTransitGatewayConnectRequest& request) const;
9246 
9247         /**
9248          * <p>Deletes the specified Connect attachment. You must first delete any Connect
9249          * peers for the attachment.</p><p><h3>See Also:</h3>   <a
9250          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteTransitGatewayConnect">AWS
9251          * API Reference</a></p>
9252          *
9253          * returns a future to the operation so that it can be executed in parallel to other requests.
9254          */
9255         virtual Model::DeleteTransitGatewayConnectOutcomeCallable DeleteTransitGatewayConnectCallable(const Model::DeleteTransitGatewayConnectRequest& request) const;
9256 
9257         /**
9258          * <p>Deletes the specified Connect attachment. You must first delete any Connect
9259          * peers for the attachment.</p><p><h3>See Also:</h3>   <a
9260          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteTransitGatewayConnect">AWS
9261          * API Reference</a></p>
9262          *
9263          * Queues the request into a thread executor and triggers associated callback when operation has finished.
9264          */
9265         virtual void DeleteTransitGatewayConnectAsync(const Model::DeleteTransitGatewayConnectRequest& request, const DeleteTransitGatewayConnectResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
9266 
9267         /**
9268          * <p>Deletes the specified Connect peer.</p><p><h3>See Also:</h3>   <a
9269          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteTransitGatewayConnectPeer">AWS
9270          * API Reference</a></p>
9271          */
9272         virtual Model::DeleteTransitGatewayConnectPeerOutcome DeleteTransitGatewayConnectPeer(const Model::DeleteTransitGatewayConnectPeerRequest& request) const;
9273 
9274         /**
9275          * <p>Deletes the specified Connect peer.</p><p><h3>See Also:</h3>   <a
9276          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteTransitGatewayConnectPeer">AWS
9277          * API Reference</a></p>
9278          *
9279          * returns a future to the operation so that it can be executed in parallel to other requests.
9280          */
9281         virtual Model::DeleteTransitGatewayConnectPeerOutcomeCallable DeleteTransitGatewayConnectPeerCallable(const Model::DeleteTransitGatewayConnectPeerRequest& request) const;
9282 
9283         /**
9284          * <p>Deletes the specified Connect peer.</p><p><h3>See Also:</h3>   <a
9285          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteTransitGatewayConnectPeer">AWS
9286          * API Reference</a></p>
9287          *
9288          * Queues the request into a thread executor and triggers associated callback when operation has finished.
9289          */
9290         virtual void DeleteTransitGatewayConnectPeerAsync(const Model::DeleteTransitGatewayConnectPeerRequest& request, const DeleteTransitGatewayConnectPeerResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
9291 
9292         /**
9293          * <p>Deletes the specified transit gateway multicast domain.</p><p><h3>See
9294          * Also:</h3>   <a
9295          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteTransitGatewayMulticastDomain">AWS
9296          * API Reference</a></p>
9297          */
9298         virtual Model::DeleteTransitGatewayMulticastDomainOutcome DeleteTransitGatewayMulticastDomain(const Model::DeleteTransitGatewayMulticastDomainRequest& request) const;
9299 
9300         /**
9301          * <p>Deletes the specified transit gateway multicast domain.</p><p><h3>See
9302          * Also:</h3>   <a
9303          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteTransitGatewayMulticastDomain">AWS
9304          * API Reference</a></p>
9305          *
9306          * returns a future to the operation so that it can be executed in parallel to other requests.
9307          */
9308         virtual Model::DeleteTransitGatewayMulticastDomainOutcomeCallable DeleteTransitGatewayMulticastDomainCallable(const Model::DeleteTransitGatewayMulticastDomainRequest& request) const;
9309 
9310         /**
9311          * <p>Deletes the specified transit gateway multicast domain.</p><p><h3>See
9312          * Also:</h3>   <a
9313          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteTransitGatewayMulticastDomain">AWS
9314          * API Reference</a></p>
9315          *
9316          * Queues the request into a thread executor and triggers associated callback when operation has finished.
9317          */
9318         virtual void DeleteTransitGatewayMulticastDomainAsync(const Model::DeleteTransitGatewayMulticastDomainRequest& request, const DeleteTransitGatewayMulticastDomainResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
9319 
9320         /**
9321          * <p>Deletes a transit gateway peering attachment.</p><p><h3>See Also:</h3>   <a
9322          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteTransitGatewayPeeringAttachment">AWS
9323          * API Reference</a></p>
9324          */
9325         virtual Model::DeleteTransitGatewayPeeringAttachmentOutcome DeleteTransitGatewayPeeringAttachment(const Model::DeleteTransitGatewayPeeringAttachmentRequest& request) const;
9326 
9327         /**
9328          * <p>Deletes a transit gateway peering attachment.</p><p><h3>See Also:</h3>   <a
9329          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteTransitGatewayPeeringAttachment">AWS
9330          * API Reference</a></p>
9331          *
9332          * returns a future to the operation so that it can be executed in parallel to other requests.
9333          */
9334         virtual Model::DeleteTransitGatewayPeeringAttachmentOutcomeCallable DeleteTransitGatewayPeeringAttachmentCallable(const Model::DeleteTransitGatewayPeeringAttachmentRequest& request) const;
9335 
9336         /**
9337          * <p>Deletes a transit gateway peering attachment.</p><p><h3>See Also:</h3>   <a
9338          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteTransitGatewayPeeringAttachment">AWS
9339          * API Reference</a></p>
9340          *
9341          * Queues the request into a thread executor and triggers associated callback when operation has finished.
9342          */
9343         virtual void DeleteTransitGatewayPeeringAttachmentAsync(const Model::DeleteTransitGatewayPeeringAttachmentRequest& request, const DeleteTransitGatewayPeeringAttachmentResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
9344 
9345         /**
9346          * <p>Deletes a reference (route) to a prefix list in a specified transit gateway
9347          * route table.</p><p><h3>See Also:</h3>   <a
9348          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteTransitGatewayPrefixListReference">AWS
9349          * API Reference</a></p>
9350          */
9351         virtual Model::DeleteTransitGatewayPrefixListReferenceOutcome DeleteTransitGatewayPrefixListReference(const Model::DeleteTransitGatewayPrefixListReferenceRequest& request) const;
9352 
9353         /**
9354          * <p>Deletes a reference (route) to a prefix list in a specified transit gateway
9355          * route table.</p><p><h3>See Also:</h3>   <a
9356          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteTransitGatewayPrefixListReference">AWS
9357          * API Reference</a></p>
9358          *
9359          * returns a future to the operation so that it can be executed in parallel to other requests.
9360          */
9361         virtual Model::DeleteTransitGatewayPrefixListReferenceOutcomeCallable DeleteTransitGatewayPrefixListReferenceCallable(const Model::DeleteTransitGatewayPrefixListReferenceRequest& request) const;
9362 
9363         /**
9364          * <p>Deletes a reference (route) to a prefix list in a specified transit gateway
9365          * route table.</p><p><h3>See Also:</h3>   <a
9366          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteTransitGatewayPrefixListReference">AWS
9367          * API Reference</a></p>
9368          *
9369          * Queues the request into a thread executor and triggers associated callback when operation has finished.
9370          */
9371         virtual void DeleteTransitGatewayPrefixListReferenceAsync(const Model::DeleteTransitGatewayPrefixListReferenceRequest& request, const DeleteTransitGatewayPrefixListReferenceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
9372 
9373         /**
9374          * <p>Deletes the specified route from the specified transit gateway route
9375          * table.</p><p><h3>See Also:</h3>   <a
9376          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteTransitGatewayRoute">AWS
9377          * API Reference</a></p>
9378          */
9379         virtual Model::DeleteTransitGatewayRouteOutcome DeleteTransitGatewayRoute(const Model::DeleteTransitGatewayRouteRequest& request) const;
9380 
9381         /**
9382          * <p>Deletes the specified route from the specified transit gateway route
9383          * table.</p><p><h3>See Also:</h3>   <a
9384          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteTransitGatewayRoute">AWS
9385          * API Reference</a></p>
9386          *
9387          * returns a future to the operation so that it can be executed in parallel to other requests.
9388          */
9389         virtual Model::DeleteTransitGatewayRouteOutcomeCallable DeleteTransitGatewayRouteCallable(const Model::DeleteTransitGatewayRouteRequest& request) const;
9390 
9391         /**
9392          * <p>Deletes the specified route from the specified transit gateway route
9393          * table.</p><p><h3>See Also:</h3>   <a
9394          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteTransitGatewayRoute">AWS
9395          * API Reference</a></p>
9396          *
9397          * Queues the request into a thread executor and triggers associated callback when operation has finished.
9398          */
9399         virtual void DeleteTransitGatewayRouteAsync(const Model::DeleteTransitGatewayRouteRequest& request, const DeleteTransitGatewayRouteResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
9400 
9401         /**
9402          * <p>Deletes the specified transit gateway route table. You must disassociate the
9403          * route table from any transit gateway route tables before you can delete
9404          * it.</p><p><h3>See Also:</h3>   <a
9405          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteTransitGatewayRouteTable">AWS
9406          * API Reference</a></p>
9407          */
9408         virtual Model::DeleteTransitGatewayRouteTableOutcome DeleteTransitGatewayRouteTable(const Model::DeleteTransitGatewayRouteTableRequest& request) const;
9409 
9410         /**
9411          * <p>Deletes the specified transit gateway route table. You must disassociate the
9412          * route table from any transit gateway route tables before you can delete
9413          * it.</p><p><h3>See Also:</h3>   <a
9414          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteTransitGatewayRouteTable">AWS
9415          * API Reference</a></p>
9416          *
9417          * returns a future to the operation so that it can be executed in parallel to other requests.
9418          */
9419         virtual Model::DeleteTransitGatewayRouteTableOutcomeCallable DeleteTransitGatewayRouteTableCallable(const Model::DeleteTransitGatewayRouteTableRequest& request) const;
9420 
9421         /**
9422          * <p>Deletes the specified transit gateway route table. You must disassociate the
9423          * route table from any transit gateway route tables before you can delete
9424          * it.</p><p><h3>See Also:</h3>   <a
9425          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteTransitGatewayRouteTable">AWS
9426          * API Reference</a></p>
9427          *
9428          * Queues the request into a thread executor and triggers associated callback when operation has finished.
9429          */
9430         virtual void DeleteTransitGatewayRouteTableAsync(const Model::DeleteTransitGatewayRouteTableRequest& request, const DeleteTransitGatewayRouteTableResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
9431 
9432         /**
9433          * <p>Deletes the specified VPC attachment.</p><p><h3>See Also:</h3>   <a
9434          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteTransitGatewayVpcAttachment">AWS
9435          * API Reference</a></p>
9436          */
9437         virtual Model::DeleteTransitGatewayVpcAttachmentOutcome DeleteTransitGatewayVpcAttachment(const Model::DeleteTransitGatewayVpcAttachmentRequest& request) const;
9438 
9439         /**
9440          * <p>Deletes the specified VPC attachment.</p><p><h3>See Also:</h3>   <a
9441          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteTransitGatewayVpcAttachment">AWS
9442          * API Reference</a></p>
9443          *
9444          * returns a future to the operation so that it can be executed in parallel to other requests.
9445          */
9446         virtual Model::DeleteTransitGatewayVpcAttachmentOutcomeCallable DeleteTransitGatewayVpcAttachmentCallable(const Model::DeleteTransitGatewayVpcAttachmentRequest& request) const;
9447 
9448         /**
9449          * <p>Deletes the specified VPC attachment.</p><p><h3>See Also:</h3>   <a
9450          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteTransitGatewayVpcAttachment">AWS
9451          * API Reference</a></p>
9452          *
9453          * Queues the request into a thread executor and triggers associated callback when operation has finished.
9454          */
9455         virtual void DeleteTransitGatewayVpcAttachmentAsync(const Model::DeleteTransitGatewayVpcAttachmentRequest& request, const DeleteTransitGatewayVpcAttachmentResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
9456 
9457         /**
9458          * <p>Deletes the specified EBS volume. The volume must be in the
9459          * <code>available</code> state (not attached to an instance).</p> <p>The volume
9460          * can remain in the <code>deleting</code> state for several minutes.</p> <p>For
9461          * more information, see <a
9462          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-deleting-volume.html">Delete
9463          * an Amazon EBS volume</a> in the <i>Amazon Elastic Compute Cloud User
9464          * Guide</i>.</p><p><h3>See Also:</h3>   <a
9465          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteVolume">AWS
9466          * API Reference</a></p>
9467          */
9468         virtual Model::DeleteVolumeOutcome DeleteVolume(const Model::DeleteVolumeRequest& request) const;
9469 
9470         /**
9471          * <p>Deletes the specified EBS volume. The volume must be in the
9472          * <code>available</code> state (not attached to an instance).</p> <p>The volume
9473          * can remain in the <code>deleting</code> state for several minutes.</p> <p>For
9474          * more information, see <a
9475          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-deleting-volume.html">Delete
9476          * an Amazon EBS volume</a> in the <i>Amazon Elastic Compute Cloud User
9477          * Guide</i>.</p><p><h3>See Also:</h3>   <a
9478          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteVolume">AWS
9479          * API Reference</a></p>
9480          *
9481          * returns a future to the operation so that it can be executed in parallel to other requests.
9482          */
9483         virtual Model::DeleteVolumeOutcomeCallable DeleteVolumeCallable(const Model::DeleteVolumeRequest& request) const;
9484 
9485         /**
9486          * <p>Deletes the specified EBS volume. The volume must be in the
9487          * <code>available</code> state (not attached to an instance).</p> <p>The volume
9488          * can remain in the <code>deleting</code> state for several minutes.</p> <p>For
9489          * more information, see <a
9490          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-deleting-volume.html">Delete
9491          * an Amazon EBS volume</a> in the <i>Amazon Elastic Compute Cloud User
9492          * Guide</i>.</p><p><h3>See Also:</h3>   <a
9493          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteVolume">AWS
9494          * API Reference</a></p>
9495          *
9496          * Queues the request into a thread executor and triggers associated callback when operation has finished.
9497          */
9498         virtual void DeleteVolumeAsync(const Model::DeleteVolumeRequest& request, const DeleteVolumeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
9499 
9500         /**
9501          * <p>Deletes the specified VPC. You must detach or delete all gateways and
9502          * resources that are associated with the VPC before you can delete it. For
9503          * example, you must terminate all instances running in the VPC, delete all
9504          * security groups associated with the VPC (except the default one), delete all
9505          * route tables associated with the VPC (except the default one), and so
9506          * on.</p><p><h3>See Also:</h3>   <a
9507          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteVpc">AWS API
9508          * Reference</a></p>
9509          */
9510         virtual Model::DeleteVpcOutcome DeleteVpc(const Model::DeleteVpcRequest& request) const;
9511 
9512         /**
9513          * <p>Deletes the specified VPC. You must detach or delete all gateways and
9514          * resources that are associated with the VPC before you can delete it. For
9515          * example, you must terminate all instances running in the VPC, delete all
9516          * security groups associated with the VPC (except the default one), delete all
9517          * route tables associated with the VPC (except the default one), and so
9518          * on.</p><p><h3>See Also:</h3>   <a
9519          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteVpc">AWS API
9520          * Reference</a></p>
9521          *
9522          * returns a future to the operation so that it can be executed in parallel to other requests.
9523          */
9524         virtual Model::DeleteVpcOutcomeCallable DeleteVpcCallable(const Model::DeleteVpcRequest& request) const;
9525 
9526         /**
9527          * <p>Deletes the specified VPC. You must detach or delete all gateways and
9528          * resources that are associated with the VPC before you can delete it. For
9529          * example, you must terminate all instances running in the VPC, delete all
9530          * security groups associated with the VPC (except the default one), delete all
9531          * route tables associated with the VPC (except the default one), and so
9532          * on.</p><p><h3>See Also:</h3>   <a
9533          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteVpc">AWS API
9534          * Reference</a></p>
9535          *
9536          * Queues the request into a thread executor and triggers associated callback when operation has finished.
9537          */
9538         virtual void DeleteVpcAsync(const Model::DeleteVpcRequest& request, const DeleteVpcResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
9539 
9540         /**
9541          * <p>Deletes one or more VPC endpoint connection notifications.</p><p><h3>See
9542          * Also:</h3>   <a
9543          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteVpcEndpointConnectionNotifications">AWS
9544          * API Reference</a></p>
9545          */
9546         virtual Model::DeleteVpcEndpointConnectionNotificationsOutcome DeleteVpcEndpointConnectionNotifications(const Model::DeleteVpcEndpointConnectionNotificationsRequest& request) const;
9547 
9548         /**
9549          * <p>Deletes one or more VPC endpoint connection notifications.</p><p><h3>See
9550          * Also:</h3>   <a
9551          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteVpcEndpointConnectionNotifications">AWS
9552          * API Reference</a></p>
9553          *
9554          * returns a future to the operation so that it can be executed in parallel to other requests.
9555          */
9556         virtual Model::DeleteVpcEndpointConnectionNotificationsOutcomeCallable DeleteVpcEndpointConnectionNotificationsCallable(const Model::DeleteVpcEndpointConnectionNotificationsRequest& request) const;
9557 
9558         /**
9559          * <p>Deletes one or more VPC endpoint connection notifications.</p><p><h3>See
9560          * Also:</h3>   <a
9561          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteVpcEndpointConnectionNotifications">AWS
9562          * API Reference</a></p>
9563          *
9564          * Queues the request into a thread executor and triggers associated callback when operation has finished.
9565          */
9566         virtual void DeleteVpcEndpointConnectionNotificationsAsync(const Model::DeleteVpcEndpointConnectionNotificationsRequest& request, const DeleteVpcEndpointConnectionNotificationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
9567 
9568         /**
9569          * <p>Deletes one or more VPC endpoint service configurations in your account.
9570          * Before you delete the endpoint service configuration, you must reject any
9571          * <code>Available</code> or <code>PendingAcceptance</code> interface endpoint
9572          * connections that are attached to the service.</p><p><h3>See Also:</h3>   <a
9573          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteVpcEndpointServiceConfigurations">AWS
9574          * API Reference</a></p>
9575          */
9576         virtual Model::DeleteVpcEndpointServiceConfigurationsOutcome DeleteVpcEndpointServiceConfigurations(const Model::DeleteVpcEndpointServiceConfigurationsRequest& request) const;
9577 
9578         /**
9579          * <p>Deletes one or more VPC endpoint service configurations in your account.
9580          * Before you delete the endpoint service configuration, you must reject any
9581          * <code>Available</code> or <code>PendingAcceptance</code> interface endpoint
9582          * connections that are attached to the service.</p><p><h3>See Also:</h3>   <a
9583          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteVpcEndpointServiceConfigurations">AWS
9584          * API Reference</a></p>
9585          *
9586          * returns a future to the operation so that it can be executed in parallel to other requests.
9587          */
9588         virtual Model::DeleteVpcEndpointServiceConfigurationsOutcomeCallable DeleteVpcEndpointServiceConfigurationsCallable(const Model::DeleteVpcEndpointServiceConfigurationsRequest& request) const;
9589 
9590         /**
9591          * <p>Deletes one or more VPC endpoint service configurations in your account.
9592          * Before you delete the endpoint service configuration, you must reject any
9593          * <code>Available</code> or <code>PendingAcceptance</code> interface endpoint
9594          * connections that are attached to the service.</p><p><h3>See Also:</h3>   <a
9595          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteVpcEndpointServiceConfigurations">AWS
9596          * API Reference</a></p>
9597          *
9598          * Queues the request into a thread executor and triggers associated callback when operation has finished.
9599          */
9600         virtual void DeleteVpcEndpointServiceConfigurationsAsync(const Model::DeleteVpcEndpointServiceConfigurationsRequest& request, const DeleteVpcEndpointServiceConfigurationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
9601 
9602         /**
9603          * <p>Deletes one or more specified VPC endpoints. You can delete any of the
9604          * following types of VPC endpoints. </p> <ul> <li> <p>Gateway endpoint,</p> </li>
9605          * <li> <p>Gateway Load Balancer endpoint,</p> </li> <li> <p>Interface endpoint</p>
9606          * </li> </ul> <p>The following rules apply when you delete a VPC endpoint:</p>
9607          * <ul> <li> <p>When you delete a gateway endpoint, we delete the endpoint routes
9608          * in the route tables that are associated with the endpoint.</p> </li> <li>
9609          * <p>When you delete a Gateway Load Balancer endpoint, we delete the endpoint
9610          * network interfaces. </p> <p>You can only delete Gateway Load Balancer endpoints
9611          * when the routes that are associated with the endpoint are deleted.</p> </li>
9612          * <li> <p>When you delete an interface endpoint, we delete the endpoint network
9613          * interfaces.</p> </li> </ul><p><h3>See Also:</h3>   <a
9614          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteVpcEndpoints">AWS
9615          * API Reference</a></p>
9616          */
9617         virtual Model::DeleteVpcEndpointsOutcome DeleteVpcEndpoints(const Model::DeleteVpcEndpointsRequest& request) const;
9618 
9619         /**
9620          * <p>Deletes one or more specified VPC endpoints. You can delete any of the
9621          * following types of VPC endpoints. </p> <ul> <li> <p>Gateway endpoint,</p> </li>
9622          * <li> <p>Gateway Load Balancer endpoint,</p> </li> <li> <p>Interface endpoint</p>
9623          * </li> </ul> <p>The following rules apply when you delete a VPC endpoint:</p>
9624          * <ul> <li> <p>When you delete a gateway endpoint, we delete the endpoint routes
9625          * in the route tables that are associated with the endpoint.</p> </li> <li>
9626          * <p>When you delete a Gateway Load Balancer endpoint, we delete the endpoint
9627          * network interfaces. </p> <p>You can only delete Gateway Load Balancer endpoints
9628          * when the routes that are associated with the endpoint are deleted.</p> </li>
9629          * <li> <p>When you delete an interface endpoint, we delete the endpoint network
9630          * interfaces.</p> </li> </ul><p><h3>See Also:</h3>   <a
9631          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteVpcEndpoints">AWS
9632          * API Reference</a></p>
9633          *
9634          * returns a future to the operation so that it can be executed in parallel to other requests.
9635          */
9636         virtual Model::DeleteVpcEndpointsOutcomeCallable DeleteVpcEndpointsCallable(const Model::DeleteVpcEndpointsRequest& request) const;
9637 
9638         /**
9639          * <p>Deletes one or more specified VPC endpoints. You can delete any of the
9640          * following types of VPC endpoints. </p> <ul> <li> <p>Gateway endpoint,</p> </li>
9641          * <li> <p>Gateway Load Balancer endpoint,</p> </li> <li> <p>Interface endpoint</p>
9642          * </li> </ul> <p>The following rules apply when you delete a VPC endpoint:</p>
9643          * <ul> <li> <p>When you delete a gateway endpoint, we delete the endpoint routes
9644          * in the route tables that are associated with the endpoint.</p> </li> <li>
9645          * <p>When you delete a Gateway Load Balancer endpoint, we delete the endpoint
9646          * network interfaces. </p> <p>You can only delete Gateway Load Balancer endpoints
9647          * when the routes that are associated with the endpoint are deleted.</p> </li>
9648          * <li> <p>When you delete an interface endpoint, we delete the endpoint network
9649          * interfaces.</p> </li> </ul><p><h3>See Also:</h3>   <a
9650          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteVpcEndpoints">AWS
9651          * API Reference</a></p>
9652          *
9653          * Queues the request into a thread executor and triggers associated callback when operation has finished.
9654          */
9655         virtual void DeleteVpcEndpointsAsync(const Model::DeleteVpcEndpointsRequest& request, const DeleteVpcEndpointsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
9656 
9657         /**
9658          * <p>Deletes a VPC peering connection. Either the owner of the requester VPC or
9659          * the owner of the accepter VPC can delete the VPC peering connection if it's in
9660          * the <code>active</code> state. The owner of the requester VPC can delete a VPC
9661          * peering connection in the <code>pending-acceptance</code> state. You cannot
9662          * delete a VPC peering connection that's in the <code>failed</code>
9663          * state.</p><p><h3>See Also:</h3>   <a
9664          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteVpcPeeringConnection">AWS
9665          * API Reference</a></p>
9666          */
9667         virtual Model::DeleteVpcPeeringConnectionOutcome DeleteVpcPeeringConnection(const Model::DeleteVpcPeeringConnectionRequest& request) const;
9668 
9669         /**
9670          * <p>Deletes a VPC peering connection. Either the owner of the requester VPC or
9671          * the owner of the accepter VPC can delete the VPC peering connection if it's in
9672          * the <code>active</code> state. The owner of the requester VPC can delete a VPC
9673          * peering connection in the <code>pending-acceptance</code> state. You cannot
9674          * delete a VPC peering connection that's in the <code>failed</code>
9675          * state.</p><p><h3>See Also:</h3>   <a
9676          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteVpcPeeringConnection">AWS
9677          * API Reference</a></p>
9678          *
9679          * returns a future to the operation so that it can be executed in parallel to other requests.
9680          */
9681         virtual Model::DeleteVpcPeeringConnectionOutcomeCallable DeleteVpcPeeringConnectionCallable(const Model::DeleteVpcPeeringConnectionRequest& request) const;
9682 
9683         /**
9684          * <p>Deletes a VPC peering connection. Either the owner of the requester VPC or
9685          * the owner of the accepter VPC can delete the VPC peering connection if it's in
9686          * the <code>active</code> state. The owner of the requester VPC can delete a VPC
9687          * peering connection in the <code>pending-acceptance</code> state. You cannot
9688          * delete a VPC peering connection that's in the <code>failed</code>
9689          * state.</p><p><h3>See Also:</h3>   <a
9690          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteVpcPeeringConnection">AWS
9691          * API Reference</a></p>
9692          *
9693          * Queues the request into a thread executor and triggers associated callback when operation has finished.
9694          */
9695         virtual void DeleteVpcPeeringConnectionAsync(const Model::DeleteVpcPeeringConnectionRequest& request, const DeleteVpcPeeringConnectionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
9696 
9697         /**
9698          * <p>Deletes the specified VPN connection.</p> <p>If you're deleting the VPC and
9699          * its associated components, we recommend that you detach the virtual private
9700          * gateway from the VPC and delete the VPC before deleting the VPN connection. If
9701          * you believe that the tunnel credentials for your VPN connection have been
9702          * compromised, you can delete the VPN connection and create a new one that has new
9703          * keys, without needing to delete the VPC or virtual private gateway. If you
9704          * create a new VPN connection, you must reconfigure the customer gateway device
9705          * using the new configuration information returned with the new VPN connection
9706          * ID.</p> <p>For certificate-based authentication, delete all Certificate Manager
9707          * (ACM) private certificates used for the Amazon Web Services-side tunnel
9708          * endpoints for the VPN connection before deleting the VPN
9709          * connection.</p><p><h3>See Also:</h3>   <a
9710          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteVpnConnection">AWS
9711          * API Reference</a></p>
9712          */
9713         virtual Model::DeleteVpnConnectionOutcome DeleteVpnConnection(const Model::DeleteVpnConnectionRequest& request) const;
9714 
9715         /**
9716          * <p>Deletes the specified VPN connection.</p> <p>If you're deleting the VPC and
9717          * its associated components, we recommend that you detach the virtual private
9718          * gateway from the VPC and delete the VPC before deleting the VPN connection. If
9719          * you believe that the tunnel credentials for your VPN connection have been
9720          * compromised, you can delete the VPN connection and create a new one that has new
9721          * keys, without needing to delete the VPC or virtual private gateway. If you
9722          * create a new VPN connection, you must reconfigure the customer gateway device
9723          * using the new configuration information returned with the new VPN connection
9724          * ID.</p> <p>For certificate-based authentication, delete all Certificate Manager
9725          * (ACM) private certificates used for the Amazon Web Services-side tunnel
9726          * endpoints for the VPN connection before deleting the VPN
9727          * connection.</p><p><h3>See Also:</h3>   <a
9728          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteVpnConnection">AWS
9729          * API Reference</a></p>
9730          *
9731          * returns a future to the operation so that it can be executed in parallel to other requests.
9732          */
9733         virtual Model::DeleteVpnConnectionOutcomeCallable DeleteVpnConnectionCallable(const Model::DeleteVpnConnectionRequest& request) const;
9734 
9735         /**
9736          * <p>Deletes the specified VPN connection.</p> <p>If you're deleting the VPC and
9737          * its associated components, we recommend that you detach the virtual private
9738          * gateway from the VPC and delete the VPC before deleting the VPN connection. If
9739          * you believe that the tunnel credentials for your VPN connection have been
9740          * compromised, you can delete the VPN connection and create a new one that has new
9741          * keys, without needing to delete the VPC or virtual private gateway. If you
9742          * create a new VPN connection, you must reconfigure the customer gateway device
9743          * using the new configuration information returned with the new VPN connection
9744          * ID.</p> <p>For certificate-based authentication, delete all Certificate Manager
9745          * (ACM) private certificates used for the Amazon Web Services-side tunnel
9746          * endpoints for the VPN connection before deleting the VPN
9747          * connection.</p><p><h3>See Also:</h3>   <a
9748          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteVpnConnection">AWS
9749          * API Reference</a></p>
9750          *
9751          * Queues the request into a thread executor and triggers associated callback when operation has finished.
9752          */
9753         virtual void DeleteVpnConnectionAsync(const Model::DeleteVpnConnectionRequest& request, const DeleteVpnConnectionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
9754 
9755         /**
9756          * <p>Deletes the specified static route associated with a VPN connection between
9757          * an existing virtual private gateway and a VPN customer gateway. The static route
9758          * allows traffic to be routed from the virtual private gateway to the VPN customer
9759          * gateway.</p><p><h3>See Also:</h3>   <a
9760          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteVpnConnectionRoute">AWS
9761          * API Reference</a></p>
9762          */
9763         virtual Model::DeleteVpnConnectionRouteOutcome DeleteVpnConnectionRoute(const Model::DeleteVpnConnectionRouteRequest& request) const;
9764 
9765         /**
9766          * <p>Deletes the specified static route associated with a VPN connection between
9767          * an existing virtual private gateway and a VPN customer gateway. The static route
9768          * allows traffic to be routed from the virtual private gateway to the VPN customer
9769          * gateway.</p><p><h3>See Also:</h3>   <a
9770          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteVpnConnectionRoute">AWS
9771          * API Reference</a></p>
9772          *
9773          * returns a future to the operation so that it can be executed in parallel to other requests.
9774          */
9775         virtual Model::DeleteVpnConnectionRouteOutcomeCallable DeleteVpnConnectionRouteCallable(const Model::DeleteVpnConnectionRouteRequest& request) const;
9776 
9777         /**
9778          * <p>Deletes the specified static route associated with a VPN connection between
9779          * an existing virtual private gateway and a VPN customer gateway. The static route
9780          * allows traffic to be routed from the virtual private gateway to the VPN customer
9781          * gateway.</p><p><h3>See Also:</h3>   <a
9782          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteVpnConnectionRoute">AWS
9783          * API Reference</a></p>
9784          *
9785          * Queues the request into a thread executor and triggers associated callback when operation has finished.
9786          */
9787         virtual void DeleteVpnConnectionRouteAsync(const Model::DeleteVpnConnectionRouteRequest& request, const DeleteVpnConnectionRouteResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
9788 
9789         /**
9790          * <p>Deletes the specified virtual private gateway. You must first detach the
9791          * virtual private gateway from the VPC. Note that you don't need to delete the
9792          * virtual private gateway if you plan to delete and recreate the VPN connection
9793          * between your VPC and your network.</p><p><h3>See Also:</h3>   <a
9794          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteVpnGateway">AWS
9795          * API Reference</a></p>
9796          */
9797         virtual Model::DeleteVpnGatewayOutcome DeleteVpnGateway(const Model::DeleteVpnGatewayRequest& request) const;
9798 
9799         /**
9800          * <p>Deletes the specified virtual private gateway. You must first detach the
9801          * virtual private gateway from the VPC. Note that you don't need to delete the
9802          * virtual private gateway if you plan to delete and recreate the VPN connection
9803          * between your VPC and your network.</p><p><h3>See Also:</h3>   <a
9804          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteVpnGateway">AWS
9805          * API Reference</a></p>
9806          *
9807          * returns a future to the operation so that it can be executed in parallel to other requests.
9808          */
9809         virtual Model::DeleteVpnGatewayOutcomeCallable DeleteVpnGatewayCallable(const Model::DeleteVpnGatewayRequest& request) const;
9810 
9811         /**
9812          * <p>Deletes the specified virtual private gateway. You must first detach the
9813          * virtual private gateway from the VPC. Note that you don't need to delete the
9814          * virtual private gateway if you plan to delete and recreate the VPN connection
9815          * between your VPC and your network.</p><p><h3>See Also:</h3>   <a
9816          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteVpnGateway">AWS
9817          * API Reference</a></p>
9818          *
9819          * Queues the request into a thread executor and triggers associated callback when operation has finished.
9820          */
9821         virtual void DeleteVpnGatewayAsync(const Model::DeleteVpnGatewayRequest& request, const DeleteVpnGatewayResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
9822 
9823         /**
9824          * <p>Releases the specified address range that you provisioned for use with your
9825          * Amazon Web Services resources through bring your own IP addresses (BYOIP) and
9826          * deletes the corresponding address pool.</p> <p>Before you can release an address
9827          * range, you must stop advertising it using <a>WithdrawByoipCidr</a> and you must
9828          * not have any IP addresses allocated from its address range.</p><p><h3>See
9829          * Also:</h3>   <a
9830          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeprovisionByoipCidr">AWS
9831          * API Reference</a></p>
9832          */
9833         virtual Model::DeprovisionByoipCidrOutcome DeprovisionByoipCidr(const Model::DeprovisionByoipCidrRequest& request) const;
9834 
9835         /**
9836          * <p>Releases the specified address range that you provisioned for use with your
9837          * Amazon Web Services resources through bring your own IP addresses (BYOIP) and
9838          * deletes the corresponding address pool.</p> <p>Before you can release an address
9839          * range, you must stop advertising it using <a>WithdrawByoipCidr</a> and you must
9840          * not have any IP addresses allocated from its address range.</p><p><h3>See
9841          * Also:</h3>   <a
9842          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeprovisionByoipCidr">AWS
9843          * API Reference</a></p>
9844          *
9845          * returns a future to the operation so that it can be executed in parallel to other requests.
9846          */
9847         virtual Model::DeprovisionByoipCidrOutcomeCallable DeprovisionByoipCidrCallable(const Model::DeprovisionByoipCidrRequest& request) const;
9848 
9849         /**
9850          * <p>Releases the specified address range that you provisioned for use with your
9851          * Amazon Web Services resources through bring your own IP addresses (BYOIP) and
9852          * deletes the corresponding address pool.</p> <p>Before you can release an address
9853          * range, you must stop advertising it using <a>WithdrawByoipCidr</a> and you must
9854          * not have any IP addresses allocated from its address range.</p><p><h3>See
9855          * Also:</h3>   <a
9856          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeprovisionByoipCidr">AWS
9857          * API Reference</a></p>
9858          *
9859          * Queues the request into a thread executor and triggers associated callback when operation has finished.
9860          */
9861         virtual void DeprovisionByoipCidrAsync(const Model::DeprovisionByoipCidrRequest& request, const DeprovisionByoipCidrResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
9862 
9863         /**
9864          * <p>Deregisters the specified AMI. After you deregister an AMI, it can't be used
9865          * to launch new instances; however, it doesn't affect any instances that you've
9866          * already launched from the AMI. You'll continue to incur usage costs for those
9867          * instances until you terminate them.</p> <p>When you deregister an Amazon
9868          * EBS-backed AMI, it doesn't affect the snapshot that was created for the root
9869          * volume of the instance during the AMI creation process. When you deregister an
9870          * instance store-backed AMI, it doesn't affect the files that you uploaded to
9871          * Amazon S3 when you created the AMI.</p><p><h3>See Also:</h3>   <a
9872          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeregisterImage">AWS
9873          * API Reference</a></p>
9874          */
9875         virtual Model::DeregisterImageOutcome DeregisterImage(const Model::DeregisterImageRequest& request) const;
9876 
9877         /**
9878          * <p>Deregisters the specified AMI. After you deregister an AMI, it can't be used
9879          * to launch new instances; however, it doesn't affect any instances that you've
9880          * already launched from the AMI. You'll continue to incur usage costs for those
9881          * instances until you terminate them.</p> <p>When you deregister an Amazon
9882          * EBS-backed AMI, it doesn't affect the snapshot that was created for the root
9883          * volume of the instance during the AMI creation process. When you deregister an
9884          * instance store-backed AMI, it doesn't affect the files that you uploaded to
9885          * Amazon S3 when you created the AMI.</p><p><h3>See Also:</h3>   <a
9886          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeregisterImage">AWS
9887          * API Reference</a></p>
9888          *
9889          * returns a future to the operation so that it can be executed in parallel to other requests.
9890          */
9891         virtual Model::DeregisterImageOutcomeCallable DeregisterImageCallable(const Model::DeregisterImageRequest& request) const;
9892 
9893         /**
9894          * <p>Deregisters the specified AMI. After you deregister an AMI, it can't be used
9895          * to launch new instances; however, it doesn't affect any instances that you've
9896          * already launched from the AMI. You'll continue to incur usage costs for those
9897          * instances until you terminate them.</p> <p>When you deregister an Amazon
9898          * EBS-backed AMI, it doesn't affect the snapshot that was created for the root
9899          * volume of the instance during the AMI creation process. When you deregister an
9900          * instance store-backed AMI, it doesn't affect the files that you uploaded to
9901          * Amazon S3 when you created the AMI.</p><p><h3>See Also:</h3>   <a
9902          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeregisterImage">AWS
9903          * API Reference</a></p>
9904          *
9905          * Queues the request into a thread executor and triggers associated callback when operation has finished.
9906          */
9907         virtual void DeregisterImageAsync(const Model::DeregisterImageRequest& request, const DeregisterImageResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
9908 
9909         /**
9910          * <p>c</p> <p>Deregisters tag keys to prevent tags that have the specified tag
9911          * keys from being included in scheduled event notifications for resources in the
9912          * Region.</p><p><h3>See Also:</h3>   <a
9913          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeregisterInstanceEventNotificationAttributes">AWS
9914          * API Reference</a></p>
9915          */
9916         virtual Model::DeregisterInstanceEventNotificationAttributesOutcome DeregisterInstanceEventNotificationAttributes(const Model::DeregisterInstanceEventNotificationAttributesRequest& request) const;
9917 
9918         /**
9919          * <p>c</p> <p>Deregisters tag keys to prevent tags that have the specified tag
9920          * keys from being included in scheduled event notifications for resources in the
9921          * Region.</p><p><h3>See Also:</h3>   <a
9922          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeregisterInstanceEventNotificationAttributes">AWS
9923          * API Reference</a></p>
9924          *
9925          * returns a future to the operation so that it can be executed in parallel to other requests.
9926          */
9927         virtual Model::DeregisterInstanceEventNotificationAttributesOutcomeCallable DeregisterInstanceEventNotificationAttributesCallable(const Model::DeregisterInstanceEventNotificationAttributesRequest& request) const;
9928 
9929         /**
9930          * <p>c</p> <p>Deregisters tag keys to prevent tags that have the specified tag
9931          * keys from being included in scheduled event notifications for resources in the
9932          * Region.</p><p><h3>See Also:</h3>   <a
9933          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeregisterInstanceEventNotificationAttributes">AWS
9934          * API Reference</a></p>
9935          *
9936          * Queues the request into a thread executor and triggers associated callback when operation has finished.
9937          */
9938         virtual void DeregisterInstanceEventNotificationAttributesAsync(const Model::DeregisterInstanceEventNotificationAttributesRequest& request, const DeregisterInstanceEventNotificationAttributesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
9939 
9940         /**
9941          * <p>Deregisters the specified members (network interfaces) from the transit
9942          * gateway multicast group.</p><p><h3>See Also:</h3>   <a
9943          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeregisterTransitGatewayMulticastGroupMembers">AWS
9944          * API Reference</a></p>
9945          */
9946         virtual Model::DeregisterTransitGatewayMulticastGroupMembersOutcome DeregisterTransitGatewayMulticastGroupMembers(const Model::DeregisterTransitGatewayMulticastGroupMembersRequest& request) const;
9947 
9948         /**
9949          * <p>Deregisters the specified members (network interfaces) from the transit
9950          * gateway multicast group.</p><p><h3>See Also:</h3>   <a
9951          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeregisterTransitGatewayMulticastGroupMembers">AWS
9952          * API Reference</a></p>
9953          *
9954          * returns a future to the operation so that it can be executed in parallel to other requests.
9955          */
9956         virtual Model::DeregisterTransitGatewayMulticastGroupMembersOutcomeCallable DeregisterTransitGatewayMulticastGroupMembersCallable(const Model::DeregisterTransitGatewayMulticastGroupMembersRequest& request) const;
9957 
9958         /**
9959          * <p>Deregisters the specified members (network interfaces) from the transit
9960          * gateway multicast group.</p><p><h3>See Also:</h3>   <a
9961          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeregisterTransitGatewayMulticastGroupMembers">AWS
9962          * API Reference</a></p>
9963          *
9964          * Queues the request into a thread executor and triggers associated callback when operation has finished.
9965          */
9966         virtual void DeregisterTransitGatewayMulticastGroupMembersAsync(const Model::DeregisterTransitGatewayMulticastGroupMembersRequest& request, const DeregisterTransitGatewayMulticastGroupMembersResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
9967 
9968         /**
9969          * <p>Deregisters the specified sources (network interfaces) from the transit
9970          * gateway multicast group.</p><p><h3>See Also:</h3>   <a
9971          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeregisterTransitGatewayMulticastGroupSources">AWS
9972          * API Reference</a></p>
9973          */
9974         virtual Model::DeregisterTransitGatewayMulticastGroupSourcesOutcome DeregisterTransitGatewayMulticastGroupSources(const Model::DeregisterTransitGatewayMulticastGroupSourcesRequest& request) const;
9975 
9976         /**
9977          * <p>Deregisters the specified sources (network interfaces) from the transit
9978          * gateway multicast group.</p><p><h3>See Also:</h3>   <a
9979          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeregisterTransitGatewayMulticastGroupSources">AWS
9980          * API Reference</a></p>
9981          *
9982          * returns a future to the operation so that it can be executed in parallel to other requests.
9983          */
9984         virtual Model::DeregisterTransitGatewayMulticastGroupSourcesOutcomeCallable DeregisterTransitGatewayMulticastGroupSourcesCallable(const Model::DeregisterTransitGatewayMulticastGroupSourcesRequest& request) const;
9985 
9986         /**
9987          * <p>Deregisters the specified sources (network interfaces) from the transit
9988          * gateway multicast group.</p><p><h3>See Also:</h3>   <a
9989          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeregisterTransitGatewayMulticastGroupSources">AWS
9990          * API Reference</a></p>
9991          *
9992          * Queues the request into a thread executor and triggers associated callback when operation has finished.
9993          */
9994         virtual void DeregisterTransitGatewayMulticastGroupSourcesAsync(const Model::DeregisterTransitGatewayMulticastGroupSourcesRequest& request, const DeregisterTransitGatewayMulticastGroupSourcesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
9995 
9996         /**
9997          * <p>Describes attributes of your AWS account. The following are the supported
9998          * account attributes:</p> <ul> <li> <p> <code>supported-platforms</code>:
9999          * Indicates whether your account can launch instances into EC2-Classic and
10000          * EC2-VPC, or only into EC2-VPC.</p> </li> <li> <p> <code>default-vpc</code>: The
10001          * ID of the default VPC for your account, or <code>none</code>.</p> </li> <li> <p>
10002          * <code>max-instances</code>: This attribute is no longer supported. The returned
10003          * value does not reflect your actual vCPU limit for running On-Demand Instances.
10004          * For more information, see <a
10005          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-on-demand-instances.html#ec2-on-demand-instances-limits">On-Demand
10006          * Instance Limits</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>
10007          * </li> <li> <p> <code>vpc-max-security-groups-per-interface</code>: The maximum
10008          * number of security groups that you can assign to a network interface.</p> </li>
10009          * <li> <p> <code>max-elastic-ips</code>: The maximum number of Elastic IP
10010          * addresses that you can allocate for use with EC2-Classic. </p> </li> <li> <p>
10011          * <code>vpc-max-elastic-ips</code>: The maximum number of Elastic IP addresses
10012          * that you can allocate for use with EC2-VPC.</p> </li> </ul><p><h3>See Also:</h3>
10013          * <a
10014          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeAccountAttributes">AWS
10015          * API Reference</a></p>
10016          */
10017         virtual Model::DescribeAccountAttributesOutcome DescribeAccountAttributes(const Model::DescribeAccountAttributesRequest& request) const;
10018 
10019         /**
10020          * <p>Describes attributes of your AWS account. The following are the supported
10021          * account attributes:</p> <ul> <li> <p> <code>supported-platforms</code>:
10022          * Indicates whether your account can launch instances into EC2-Classic and
10023          * EC2-VPC, or only into EC2-VPC.</p> </li> <li> <p> <code>default-vpc</code>: The
10024          * ID of the default VPC for your account, or <code>none</code>.</p> </li> <li> <p>
10025          * <code>max-instances</code>: This attribute is no longer supported. The returned
10026          * value does not reflect your actual vCPU limit for running On-Demand Instances.
10027          * For more information, see <a
10028          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-on-demand-instances.html#ec2-on-demand-instances-limits">On-Demand
10029          * Instance Limits</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>
10030          * </li> <li> <p> <code>vpc-max-security-groups-per-interface</code>: The maximum
10031          * number of security groups that you can assign to a network interface.</p> </li>
10032          * <li> <p> <code>max-elastic-ips</code>: The maximum number of Elastic IP
10033          * addresses that you can allocate for use with EC2-Classic. </p> </li> <li> <p>
10034          * <code>vpc-max-elastic-ips</code>: The maximum number of Elastic IP addresses
10035          * that you can allocate for use with EC2-VPC.</p> </li> </ul><p><h3>See Also:</h3>
10036          * <a
10037          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeAccountAttributes">AWS
10038          * API Reference</a></p>
10039          *
10040          * returns a future to the operation so that it can be executed in parallel to other requests.
10041          */
10042         virtual Model::DescribeAccountAttributesOutcomeCallable DescribeAccountAttributesCallable(const Model::DescribeAccountAttributesRequest& request) const;
10043 
10044         /**
10045          * <p>Describes attributes of your AWS account. The following are the supported
10046          * account attributes:</p> <ul> <li> <p> <code>supported-platforms</code>:
10047          * Indicates whether your account can launch instances into EC2-Classic and
10048          * EC2-VPC, or only into EC2-VPC.</p> </li> <li> <p> <code>default-vpc</code>: The
10049          * ID of the default VPC for your account, or <code>none</code>.</p> </li> <li> <p>
10050          * <code>max-instances</code>: This attribute is no longer supported. The returned
10051          * value does not reflect your actual vCPU limit for running On-Demand Instances.
10052          * For more information, see <a
10053          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-on-demand-instances.html#ec2-on-demand-instances-limits">On-Demand
10054          * Instance Limits</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>
10055          * </li> <li> <p> <code>vpc-max-security-groups-per-interface</code>: The maximum
10056          * number of security groups that you can assign to a network interface.</p> </li>
10057          * <li> <p> <code>max-elastic-ips</code>: The maximum number of Elastic IP
10058          * addresses that you can allocate for use with EC2-Classic. </p> </li> <li> <p>
10059          * <code>vpc-max-elastic-ips</code>: The maximum number of Elastic IP addresses
10060          * that you can allocate for use with EC2-VPC.</p> </li> </ul><p><h3>See Also:</h3>
10061          * <a
10062          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeAccountAttributes">AWS
10063          * API Reference</a></p>
10064          *
10065          * Queues the request into a thread executor and triggers associated callback when operation has finished.
10066          */
10067         virtual void DescribeAccountAttributesAsync(const Model::DescribeAccountAttributesRequest& request, const DescribeAccountAttributesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
10068 
10069         /**
10070          * <p>Describes the specified Elastic IP addresses or all of your Elastic IP
10071          * addresses.</p> <p>An Elastic IP address is for use in either the EC2-Classic
10072          * platform or in a VPC. For more information, see <a
10073          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html">Elastic
10074          * IP Addresses</a> in the <i>Amazon Elastic Compute Cloud User
10075          * Guide</i>.</p><p><h3>See Also:</h3>   <a
10076          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeAddresses">AWS
10077          * API Reference</a></p>
10078          */
10079         virtual Model::DescribeAddressesOutcome DescribeAddresses(const Model::DescribeAddressesRequest& request) const;
10080 
10081         /**
10082          * <p>Describes the specified Elastic IP addresses or all of your Elastic IP
10083          * addresses.</p> <p>An Elastic IP address is for use in either the EC2-Classic
10084          * platform or in a VPC. For more information, see <a
10085          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html">Elastic
10086          * IP Addresses</a> in the <i>Amazon Elastic Compute Cloud User
10087          * Guide</i>.</p><p><h3>See Also:</h3>   <a
10088          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeAddresses">AWS
10089          * API Reference</a></p>
10090          *
10091          * returns a future to the operation so that it can be executed in parallel to other requests.
10092          */
10093         virtual Model::DescribeAddressesOutcomeCallable DescribeAddressesCallable(const Model::DescribeAddressesRequest& request) const;
10094 
10095         /**
10096          * <p>Describes the specified Elastic IP addresses or all of your Elastic IP
10097          * addresses.</p> <p>An Elastic IP address is for use in either the EC2-Classic
10098          * platform or in a VPC. For more information, see <a
10099          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html">Elastic
10100          * IP Addresses</a> in the <i>Amazon Elastic Compute Cloud User
10101          * Guide</i>.</p><p><h3>See Also:</h3>   <a
10102          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeAddresses">AWS
10103          * API Reference</a></p>
10104          *
10105          * Queues the request into a thread executor and triggers associated callback when operation has finished.
10106          */
10107         virtual void DescribeAddressesAsync(const Model::DescribeAddressesRequest& request, const DescribeAddressesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
10108 
10109         /**
10110          * <p>Describes the attributes of the specified Elastic IP addresses. For
10111          * requirements, see <a
10112          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html#Using_Elastic_Addressing_Reverse_DNS">Using
10113          * reverse DNS for email applications</a>.</p><p><h3>See Also:</h3>   <a
10114          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeAddressesAttribute">AWS
10115          * API Reference</a></p>
10116          */
10117         virtual Model::DescribeAddressesAttributeOutcome DescribeAddressesAttribute(const Model::DescribeAddressesAttributeRequest& request) const;
10118 
10119         /**
10120          * <p>Describes the attributes of the specified Elastic IP addresses. For
10121          * requirements, see <a
10122          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html#Using_Elastic_Addressing_Reverse_DNS">Using
10123          * reverse DNS for email applications</a>.</p><p><h3>See Also:</h3>   <a
10124          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeAddressesAttribute">AWS
10125          * API Reference</a></p>
10126          *
10127          * returns a future to the operation so that it can be executed in parallel to other requests.
10128          */
10129         virtual Model::DescribeAddressesAttributeOutcomeCallable DescribeAddressesAttributeCallable(const Model::DescribeAddressesAttributeRequest& request) const;
10130 
10131         /**
10132          * <p>Describes the attributes of the specified Elastic IP addresses. For
10133          * requirements, see <a
10134          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html#Using_Elastic_Addressing_Reverse_DNS">Using
10135          * reverse DNS for email applications</a>.</p><p><h3>See Also:</h3>   <a
10136          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeAddressesAttribute">AWS
10137          * API Reference</a></p>
10138          *
10139          * Queues the request into a thread executor and triggers associated callback when operation has finished.
10140          */
10141         virtual void DescribeAddressesAttributeAsync(const Model::DescribeAddressesAttributeRequest& request, const DescribeAddressesAttributeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
10142 
10143         /**
10144          * <p>Describes the longer ID format settings for all resource types in a specific
10145          * Region. This request is useful for performing a quick audit to determine whether
10146          * a specific Region is fully opted in for longer IDs (17-character IDs).</p>
10147          * <p>This request only returns information about resource types that support
10148          * longer IDs.</p> <p>The following resource types support longer IDs:
10149          * <code>bundle</code> | <code>conversion-task</code> |
10150          * <code>customer-gateway</code> | <code>dhcp-options</code> |
10151          * <code>elastic-ip-allocation</code> | <code>elastic-ip-association</code> |
10152          * <code>export-task</code> | <code>flow-log</code> | <code>image</code> |
10153          * <code>import-task</code> | <code>instance</code> | <code>internet-gateway</code>
10154          * | <code>network-acl</code> | <code>network-acl-association</code> |
10155          * <code>network-interface</code> | <code>network-interface-attachment</code> |
10156          * <code>prefix-list</code> | <code>reservation</code> | <code>route-table</code> |
10157          * <code>route-table-association</code> | <code>security-group</code> |
10158          * <code>snapshot</code> | <code>subnet</code> |
10159          * <code>subnet-cidr-block-association</code> | <code>volume</code> |
10160          * <code>vpc</code> | <code>vpc-cidr-block-association</code> |
10161          * <code>vpc-endpoint</code> | <code>vpc-peering-connection</code> |
10162          * <code>vpn-connection</code> | <code>vpn-gateway</code>.</p><p><h3>See Also:</h3>
10163          * <a
10164          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeAggregateIdFormat">AWS
10165          * API Reference</a></p>
10166          */
10167         virtual Model::DescribeAggregateIdFormatOutcome DescribeAggregateIdFormat(const Model::DescribeAggregateIdFormatRequest& request) const;
10168 
10169         /**
10170          * <p>Describes the longer ID format settings for all resource types in a specific
10171          * Region. This request is useful for performing a quick audit to determine whether
10172          * a specific Region is fully opted in for longer IDs (17-character IDs).</p>
10173          * <p>This request only returns information about resource types that support
10174          * longer IDs.</p> <p>The following resource types support longer IDs:
10175          * <code>bundle</code> | <code>conversion-task</code> |
10176          * <code>customer-gateway</code> | <code>dhcp-options</code> |
10177          * <code>elastic-ip-allocation</code> | <code>elastic-ip-association</code> |
10178          * <code>export-task</code> | <code>flow-log</code> | <code>image</code> |
10179          * <code>import-task</code> | <code>instance</code> | <code>internet-gateway</code>
10180          * | <code>network-acl</code> | <code>network-acl-association</code> |
10181          * <code>network-interface</code> | <code>network-interface-attachment</code> |
10182          * <code>prefix-list</code> | <code>reservation</code> | <code>route-table</code> |
10183          * <code>route-table-association</code> | <code>security-group</code> |
10184          * <code>snapshot</code> | <code>subnet</code> |
10185          * <code>subnet-cidr-block-association</code> | <code>volume</code> |
10186          * <code>vpc</code> | <code>vpc-cidr-block-association</code> |
10187          * <code>vpc-endpoint</code> | <code>vpc-peering-connection</code> |
10188          * <code>vpn-connection</code> | <code>vpn-gateway</code>.</p><p><h3>See Also:</h3>
10189          * <a
10190          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeAggregateIdFormat">AWS
10191          * API Reference</a></p>
10192          *
10193          * returns a future to the operation so that it can be executed in parallel to other requests.
10194          */
10195         virtual Model::DescribeAggregateIdFormatOutcomeCallable DescribeAggregateIdFormatCallable(const Model::DescribeAggregateIdFormatRequest& request) const;
10196 
10197         /**
10198          * <p>Describes the longer ID format settings for all resource types in a specific
10199          * Region. This request is useful for performing a quick audit to determine whether
10200          * a specific Region is fully opted in for longer IDs (17-character IDs).</p>
10201          * <p>This request only returns information about resource types that support
10202          * longer IDs.</p> <p>The following resource types support longer IDs:
10203          * <code>bundle</code> | <code>conversion-task</code> |
10204          * <code>customer-gateway</code> | <code>dhcp-options</code> |
10205          * <code>elastic-ip-allocation</code> | <code>elastic-ip-association</code> |
10206          * <code>export-task</code> | <code>flow-log</code> | <code>image</code> |
10207          * <code>import-task</code> | <code>instance</code> | <code>internet-gateway</code>
10208          * | <code>network-acl</code> | <code>network-acl-association</code> |
10209          * <code>network-interface</code> | <code>network-interface-attachment</code> |
10210          * <code>prefix-list</code> | <code>reservation</code> | <code>route-table</code> |
10211          * <code>route-table-association</code> | <code>security-group</code> |
10212          * <code>snapshot</code> | <code>subnet</code> |
10213          * <code>subnet-cidr-block-association</code> | <code>volume</code> |
10214          * <code>vpc</code> | <code>vpc-cidr-block-association</code> |
10215          * <code>vpc-endpoint</code> | <code>vpc-peering-connection</code> |
10216          * <code>vpn-connection</code> | <code>vpn-gateway</code>.</p><p><h3>See Also:</h3>
10217          * <a
10218          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeAggregateIdFormat">AWS
10219          * API Reference</a></p>
10220          *
10221          * Queues the request into a thread executor and triggers associated callback when operation has finished.
10222          */
10223         virtual void DescribeAggregateIdFormatAsync(const Model::DescribeAggregateIdFormatRequest& request, const DescribeAggregateIdFormatResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
10224 
10225         /**
10226          * <p>Describes the Availability Zones, Local Zones, and Wavelength Zones that are
10227          * available to you. If there is an event impacting a zone, you can use this
10228          * request to view the state and any provided messages for that zone.</p> <p>For
10229          * more information about Availability Zones, Local Zones, and Wavelength Zones,
10230          * see <a
10231          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html">Regions
10232          * and zones</a> in the <i>Amazon Elastic Compute Cloud User
10233          * Guide</i>.</p><p><h3>See Also:</h3>   <a
10234          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeAvailabilityZones">AWS
10235          * API Reference</a></p>
10236          */
10237         virtual Model::DescribeAvailabilityZonesOutcome DescribeAvailabilityZones(const Model::DescribeAvailabilityZonesRequest& request) const;
10238 
10239         /**
10240          * <p>Describes the Availability Zones, Local Zones, and Wavelength Zones that are
10241          * available to you. If there is an event impacting a zone, you can use this
10242          * request to view the state and any provided messages for that zone.</p> <p>For
10243          * more information about Availability Zones, Local Zones, and Wavelength Zones,
10244          * see <a
10245          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html">Regions
10246          * and zones</a> in the <i>Amazon Elastic Compute Cloud User
10247          * Guide</i>.</p><p><h3>See Also:</h3>   <a
10248          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeAvailabilityZones">AWS
10249          * API Reference</a></p>
10250          *
10251          * returns a future to the operation so that it can be executed in parallel to other requests.
10252          */
10253         virtual Model::DescribeAvailabilityZonesOutcomeCallable DescribeAvailabilityZonesCallable(const Model::DescribeAvailabilityZonesRequest& request) const;
10254 
10255         /**
10256          * <p>Describes the Availability Zones, Local Zones, and Wavelength Zones that are
10257          * available to you. If there is an event impacting a zone, you can use this
10258          * request to view the state and any provided messages for that zone.</p> <p>For
10259          * more information about Availability Zones, Local Zones, and Wavelength Zones,
10260          * see <a
10261          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html">Regions
10262          * and zones</a> in the <i>Amazon Elastic Compute Cloud User
10263          * Guide</i>.</p><p><h3>See Also:</h3>   <a
10264          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeAvailabilityZones">AWS
10265          * API Reference</a></p>
10266          *
10267          * Queues the request into a thread executor and triggers associated callback when operation has finished.
10268          */
10269         virtual void DescribeAvailabilityZonesAsync(const Model::DescribeAvailabilityZonesRequest& request, const DescribeAvailabilityZonesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
10270 
10271         /**
10272          * <p>Describes the specified bundle tasks or all of your bundle tasks.</p>
10273          * <p>Completed bundle tasks are listed for only a limited time. If your bundle
10274          * task is no longer in the list, you can still register an AMI from it. Just use
10275          * <code>RegisterImage</code> with the Amazon S3 bucket name and image manifest
10276          * name you provided to the bundle task.</p> <p><h3>See Also:</h3>   <a
10277          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeBundleTasks">AWS
10278          * API Reference</a></p>
10279          */
10280         virtual Model::DescribeBundleTasksOutcome DescribeBundleTasks(const Model::DescribeBundleTasksRequest& request) const;
10281 
10282         /**
10283          * <p>Describes the specified bundle tasks or all of your bundle tasks.</p>
10284          * <p>Completed bundle tasks are listed for only a limited time. If your bundle
10285          * task is no longer in the list, you can still register an AMI from it. Just use
10286          * <code>RegisterImage</code> with the Amazon S3 bucket name and image manifest
10287          * name you provided to the bundle task.</p> <p><h3>See Also:</h3>   <a
10288          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeBundleTasks">AWS
10289          * API Reference</a></p>
10290          *
10291          * returns a future to the operation so that it can be executed in parallel to other requests.
10292          */
10293         virtual Model::DescribeBundleTasksOutcomeCallable DescribeBundleTasksCallable(const Model::DescribeBundleTasksRequest& request) const;
10294 
10295         /**
10296          * <p>Describes the specified bundle tasks or all of your bundle tasks.</p>
10297          * <p>Completed bundle tasks are listed for only a limited time. If your bundle
10298          * task is no longer in the list, you can still register an AMI from it. Just use
10299          * <code>RegisterImage</code> with the Amazon S3 bucket name and image manifest
10300          * name you provided to the bundle task.</p> <p><h3>See Also:</h3>   <a
10301          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeBundleTasks">AWS
10302          * API Reference</a></p>
10303          *
10304          * Queues the request into a thread executor and triggers associated callback when operation has finished.
10305          */
10306         virtual void DescribeBundleTasksAsync(const Model::DescribeBundleTasksRequest& request, const DescribeBundleTasksResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
10307 
10308         /**
10309          * <p>Describes the IP address ranges that were specified in calls to
10310          * <a>ProvisionByoipCidr</a>.</p> <p>To describe the address pools that were
10311          * created when you provisioned the address ranges, use
10312          * <a>DescribePublicIpv4Pools</a> or <a>DescribeIpv6Pools</a>.</p><p><h3>See
10313          * Also:</h3>   <a
10314          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeByoipCidrs">AWS
10315          * API Reference</a></p>
10316          */
10317         virtual Model::DescribeByoipCidrsOutcome DescribeByoipCidrs(const Model::DescribeByoipCidrsRequest& request) const;
10318 
10319         /**
10320          * <p>Describes the IP address ranges that were specified in calls to
10321          * <a>ProvisionByoipCidr</a>.</p> <p>To describe the address pools that were
10322          * created when you provisioned the address ranges, use
10323          * <a>DescribePublicIpv4Pools</a> or <a>DescribeIpv6Pools</a>.</p><p><h3>See
10324          * Also:</h3>   <a
10325          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeByoipCidrs">AWS
10326          * API Reference</a></p>
10327          *
10328          * returns a future to the operation so that it can be executed in parallel to other requests.
10329          */
10330         virtual Model::DescribeByoipCidrsOutcomeCallable DescribeByoipCidrsCallable(const Model::DescribeByoipCidrsRequest& request) const;
10331 
10332         /**
10333          * <p>Describes the IP address ranges that were specified in calls to
10334          * <a>ProvisionByoipCidr</a>.</p> <p>To describe the address pools that were
10335          * created when you provisioned the address ranges, use
10336          * <a>DescribePublicIpv4Pools</a> or <a>DescribeIpv6Pools</a>.</p><p><h3>See
10337          * Also:</h3>   <a
10338          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeByoipCidrs">AWS
10339          * API Reference</a></p>
10340          *
10341          * Queues the request into a thread executor and triggers associated callback when operation has finished.
10342          */
10343         virtual void DescribeByoipCidrsAsync(const Model::DescribeByoipCidrsRequest& request, const DescribeByoipCidrsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
10344 
10345         /**
10346          * <p>Describes one or more Capacity Reservation Fleets.</p><p><h3>See Also:</h3>
10347          * <a
10348          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeCapacityReservationFleets">AWS
10349          * API Reference</a></p>
10350          */
10351         virtual Model::DescribeCapacityReservationFleetsOutcome DescribeCapacityReservationFleets(const Model::DescribeCapacityReservationFleetsRequest& request) const;
10352 
10353         /**
10354          * <p>Describes one or more Capacity Reservation Fleets.</p><p><h3>See Also:</h3>
10355          * <a
10356          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeCapacityReservationFleets">AWS
10357          * API Reference</a></p>
10358          *
10359          * returns a future to the operation so that it can be executed in parallel to other requests.
10360          */
10361         virtual Model::DescribeCapacityReservationFleetsOutcomeCallable DescribeCapacityReservationFleetsCallable(const Model::DescribeCapacityReservationFleetsRequest& request) const;
10362 
10363         /**
10364          * <p>Describes one or more Capacity Reservation Fleets.</p><p><h3>See Also:</h3>
10365          * <a
10366          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeCapacityReservationFleets">AWS
10367          * API Reference</a></p>
10368          *
10369          * Queues the request into a thread executor and triggers associated callback when operation has finished.
10370          */
10371         virtual void DescribeCapacityReservationFleetsAsync(const Model::DescribeCapacityReservationFleetsRequest& request, const DescribeCapacityReservationFleetsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
10372 
10373         /**
10374          * <p>Describes one or more of your Capacity Reservations. The results describe
10375          * only the Capacity Reservations in the Amazon Web Services Region that you're
10376          * currently using.</p><p><h3>See Also:</h3>   <a
10377          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeCapacityReservations">AWS
10378          * API Reference</a></p>
10379          */
10380         virtual Model::DescribeCapacityReservationsOutcome DescribeCapacityReservations(const Model::DescribeCapacityReservationsRequest& request) const;
10381 
10382         /**
10383          * <p>Describes one or more of your Capacity Reservations. The results describe
10384          * only the Capacity Reservations in the Amazon Web Services Region that you're
10385          * currently using.</p><p><h3>See Also:</h3>   <a
10386          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeCapacityReservations">AWS
10387          * API Reference</a></p>
10388          *
10389          * returns a future to the operation so that it can be executed in parallel to other requests.
10390          */
10391         virtual Model::DescribeCapacityReservationsOutcomeCallable DescribeCapacityReservationsCallable(const Model::DescribeCapacityReservationsRequest& request) const;
10392 
10393         /**
10394          * <p>Describes one or more of your Capacity Reservations. The results describe
10395          * only the Capacity Reservations in the Amazon Web Services Region that you're
10396          * currently using.</p><p><h3>See Also:</h3>   <a
10397          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeCapacityReservations">AWS
10398          * API Reference</a></p>
10399          *
10400          * Queues the request into a thread executor and triggers associated callback when operation has finished.
10401          */
10402         virtual void DescribeCapacityReservationsAsync(const Model::DescribeCapacityReservationsRequest& request, const DescribeCapacityReservationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
10403 
10404         /**
10405          * <p>Describes one or more of your carrier gateways.</p><p><h3>See Also:</h3>   <a
10406          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeCarrierGateways">AWS
10407          * API Reference</a></p>
10408          */
10409         virtual Model::DescribeCarrierGatewaysOutcome DescribeCarrierGateways(const Model::DescribeCarrierGatewaysRequest& request) const;
10410 
10411         /**
10412          * <p>Describes one or more of your carrier gateways.</p><p><h3>See Also:</h3>   <a
10413          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeCarrierGateways">AWS
10414          * API Reference</a></p>
10415          *
10416          * returns a future to the operation so that it can be executed in parallel to other requests.
10417          */
10418         virtual Model::DescribeCarrierGatewaysOutcomeCallable DescribeCarrierGatewaysCallable(const Model::DescribeCarrierGatewaysRequest& request) const;
10419 
10420         /**
10421          * <p>Describes one or more of your carrier gateways.</p><p><h3>See Also:</h3>   <a
10422          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeCarrierGateways">AWS
10423          * API Reference</a></p>
10424          *
10425          * Queues the request into a thread executor and triggers associated callback when operation has finished.
10426          */
10427         virtual void DescribeCarrierGatewaysAsync(const Model::DescribeCarrierGatewaysRequest& request, const DescribeCarrierGatewaysResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
10428 
10429         /**
10430          * <p>Describes one or more of your linked EC2-Classic instances. This request only
10431          * returns information about EC2-Classic instances linked to a VPC through
10432          * ClassicLink. You cannot use this request to return information about other
10433          * instances.</p><p><h3>See Also:</h3>   <a
10434          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeClassicLinkInstances">AWS
10435          * API Reference</a></p>
10436          */
10437         virtual Model::DescribeClassicLinkInstancesOutcome DescribeClassicLinkInstances(const Model::DescribeClassicLinkInstancesRequest& request) const;
10438 
10439         /**
10440          * <p>Describes one or more of your linked EC2-Classic instances. This request only
10441          * returns information about EC2-Classic instances linked to a VPC through
10442          * ClassicLink. You cannot use this request to return information about other
10443          * instances.</p><p><h3>See Also:</h3>   <a
10444          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeClassicLinkInstances">AWS
10445          * API Reference</a></p>
10446          *
10447          * returns a future to the operation so that it can be executed in parallel to other requests.
10448          */
10449         virtual Model::DescribeClassicLinkInstancesOutcomeCallable DescribeClassicLinkInstancesCallable(const Model::DescribeClassicLinkInstancesRequest& request) const;
10450 
10451         /**
10452          * <p>Describes one or more of your linked EC2-Classic instances. This request only
10453          * returns information about EC2-Classic instances linked to a VPC through
10454          * ClassicLink. You cannot use this request to return information about other
10455          * instances.</p><p><h3>See Also:</h3>   <a
10456          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeClassicLinkInstances">AWS
10457          * API Reference</a></p>
10458          *
10459          * Queues the request into a thread executor and triggers associated callback when operation has finished.
10460          */
10461         virtual void DescribeClassicLinkInstancesAsync(const Model::DescribeClassicLinkInstancesRequest& request, const DescribeClassicLinkInstancesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
10462 
10463         /**
10464          * <p>Describes the authorization rules for a specified Client VPN
10465          * endpoint.</p><p><h3>See Also:</h3>   <a
10466          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeClientVpnAuthorizationRules">AWS
10467          * API Reference</a></p>
10468          */
10469         virtual Model::DescribeClientVpnAuthorizationRulesOutcome DescribeClientVpnAuthorizationRules(const Model::DescribeClientVpnAuthorizationRulesRequest& request) const;
10470 
10471         /**
10472          * <p>Describes the authorization rules for a specified Client VPN
10473          * endpoint.</p><p><h3>See Also:</h3>   <a
10474          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeClientVpnAuthorizationRules">AWS
10475          * API Reference</a></p>
10476          *
10477          * returns a future to the operation so that it can be executed in parallel to other requests.
10478          */
10479         virtual Model::DescribeClientVpnAuthorizationRulesOutcomeCallable DescribeClientVpnAuthorizationRulesCallable(const Model::DescribeClientVpnAuthorizationRulesRequest& request) const;
10480 
10481         /**
10482          * <p>Describes the authorization rules for a specified Client VPN
10483          * endpoint.</p><p><h3>See Also:</h3>   <a
10484          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeClientVpnAuthorizationRules">AWS
10485          * API Reference</a></p>
10486          *
10487          * Queues the request into a thread executor and triggers associated callback when operation has finished.
10488          */
10489         virtual void DescribeClientVpnAuthorizationRulesAsync(const Model::DescribeClientVpnAuthorizationRulesRequest& request, const DescribeClientVpnAuthorizationRulesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
10490 
10491         /**
10492          * <p>Describes active client connections and connections that have been terminated
10493          * within the last 60 minutes for the specified Client VPN endpoint.</p><p><h3>See
10494          * Also:</h3>   <a
10495          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeClientVpnConnections">AWS
10496          * API Reference</a></p>
10497          */
10498         virtual Model::DescribeClientVpnConnectionsOutcome DescribeClientVpnConnections(const Model::DescribeClientVpnConnectionsRequest& request) const;
10499 
10500         /**
10501          * <p>Describes active client connections and connections that have been terminated
10502          * within the last 60 minutes for the specified Client VPN endpoint.</p><p><h3>See
10503          * Also:</h3>   <a
10504          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeClientVpnConnections">AWS
10505          * API Reference</a></p>
10506          *
10507          * returns a future to the operation so that it can be executed in parallel to other requests.
10508          */
10509         virtual Model::DescribeClientVpnConnectionsOutcomeCallable DescribeClientVpnConnectionsCallable(const Model::DescribeClientVpnConnectionsRequest& request) const;
10510 
10511         /**
10512          * <p>Describes active client connections and connections that have been terminated
10513          * within the last 60 minutes for the specified Client VPN endpoint.</p><p><h3>See
10514          * Also:</h3>   <a
10515          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeClientVpnConnections">AWS
10516          * API Reference</a></p>
10517          *
10518          * Queues the request into a thread executor and triggers associated callback when operation has finished.
10519          */
10520         virtual void DescribeClientVpnConnectionsAsync(const Model::DescribeClientVpnConnectionsRequest& request, const DescribeClientVpnConnectionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
10521 
10522         /**
10523          * <p>Describes one or more Client VPN endpoints in the account.</p><p><h3>See
10524          * Also:</h3>   <a
10525          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeClientVpnEndpoints">AWS
10526          * API Reference</a></p>
10527          */
10528         virtual Model::DescribeClientVpnEndpointsOutcome DescribeClientVpnEndpoints(const Model::DescribeClientVpnEndpointsRequest& request) const;
10529 
10530         /**
10531          * <p>Describes one or more Client VPN endpoints in the account.</p><p><h3>See
10532          * Also:</h3>   <a
10533          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeClientVpnEndpoints">AWS
10534          * API Reference</a></p>
10535          *
10536          * returns a future to the operation so that it can be executed in parallel to other requests.
10537          */
10538         virtual Model::DescribeClientVpnEndpointsOutcomeCallable DescribeClientVpnEndpointsCallable(const Model::DescribeClientVpnEndpointsRequest& request) const;
10539 
10540         /**
10541          * <p>Describes one or more Client VPN endpoints in the account.</p><p><h3>See
10542          * Also:</h3>   <a
10543          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeClientVpnEndpoints">AWS
10544          * API Reference</a></p>
10545          *
10546          * Queues the request into a thread executor and triggers associated callback when operation has finished.
10547          */
10548         virtual void DescribeClientVpnEndpointsAsync(const Model::DescribeClientVpnEndpointsRequest& request, const DescribeClientVpnEndpointsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
10549 
10550         /**
10551          * <p>Describes the routes for the specified Client VPN endpoint.</p><p><h3>See
10552          * Also:</h3>   <a
10553          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeClientVpnRoutes">AWS
10554          * API Reference</a></p>
10555          */
10556         virtual Model::DescribeClientVpnRoutesOutcome DescribeClientVpnRoutes(const Model::DescribeClientVpnRoutesRequest& request) const;
10557 
10558         /**
10559          * <p>Describes the routes for the specified Client VPN endpoint.</p><p><h3>See
10560          * Also:</h3>   <a
10561          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeClientVpnRoutes">AWS
10562          * API Reference</a></p>
10563          *
10564          * returns a future to the operation so that it can be executed in parallel to other requests.
10565          */
10566         virtual Model::DescribeClientVpnRoutesOutcomeCallable DescribeClientVpnRoutesCallable(const Model::DescribeClientVpnRoutesRequest& request) const;
10567 
10568         /**
10569          * <p>Describes the routes for the specified Client VPN endpoint.</p><p><h3>See
10570          * Also:</h3>   <a
10571          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeClientVpnRoutes">AWS
10572          * API Reference</a></p>
10573          *
10574          * Queues the request into a thread executor and triggers associated callback when operation has finished.
10575          */
10576         virtual void DescribeClientVpnRoutesAsync(const Model::DescribeClientVpnRoutesRequest& request, const DescribeClientVpnRoutesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
10577 
10578         /**
10579          * <p>Describes the target networks associated with the specified Client VPN
10580          * endpoint.</p><p><h3>See Also:</h3>   <a
10581          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeClientVpnTargetNetworks">AWS
10582          * API Reference</a></p>
10583          */
10584         virtual Model::DescribeClientVpnTargetNetworksOutcome DescribeClientVpnTargetNetworks(const Model::DescribeClientVpnTargetNetworksRequest& request) const;
10585 
10586         /**
10587          * <p>Describes the target networks associated with the specified Client VPN
10588          * endpoint.</p><p><h3>See Also:</h3>   <a
10589          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeClientVpnTargetNetworks">AWS
10590          * API Reference</a></p>
10591          *
10592          * returns a future to the operation so that it can be executed in parallel to other requests.
10593          */
10594         virtual Model::DescribeClientVpnTargetNetworksOutcomeCallable DescribeClientVpnTargetNetworksCallable(const Model::DescribeClientVpnTargetNetworksRequest& request) const;
10595 
10596         /**
10597          * <p>Describes the target networks associated with the specified Client VPN
10598          * endpoint.</p><p><h3>See Also:</h3>   <a
10599          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeClientVpnTargetNetworks">AWS
10600          * API Reference</a></p>
10601          *
10602          * Queues the request into a thread executor and triggers associated callback when operation has finished.
10603          */
10604         virtual void DescribeClientVpnTargetNetworksAsync(const Model::DescribeClientVpnTargetNetworksRequest& request, const DescribeClientVpnTargetNetworksResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
10605 
10606         /**
10607          * <p>Describes the specified customer-owned address pools or all of your
10608          * customer-owned address pools.</p><p><h3>See Also:</h3>   <a
10609          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeCoipPools">AWS
10610          * API Reference</a></p>
10611          */
10612         virtual Model::DescribeCoipPoolsOutcome DescribeCoipPools(const Model::DescribeCoipPoolsRequest& request) const;
10613 
10614         /**
10615          * <p>Describes the specified customer-owned address pools or all of your
10616          * customer-owned address pools.</p><p><h3>See Also:</h3>   <a
10617          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeCoipPools">AWS
10618          * API Reference</a></p>
10619          *
10620          * returns a future to the operation so that it can be executed in parallel to other requests.
10621          */
10622         virtual Model::DescribeCoipPoolsOutcomeCallable DescribeCoipPoolsCallable(const Model::DescribeCoipPoolsRequest& request) const;
10623 
10624         /**
10625          * <p>Describes the specified customer-owned address pools or all of your
10626          * customer-owned address pools.</p><p><h3>See Also:</h3>   <a
10627          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeCoipPools">AWS
10628          * API Reference</a></p>
10629          *
10630          * Queues the request into a thread executor and triggers associated callback when operation has finished.
10631          */
10632         virtual void DescribeCoipPoolsAsync(const Model::DescribeCoipPoolsRequest& request, const DescribeCoipPoolsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
10633 
10634         /**
10635          * <p>Describes the specified conversion tasks or all your conversion tasks. For
10636          * more information, see the <a
10637          * href="https://docs.aws.amazon.com/vm-import/latest/userguide/">VM Import/Export
10638          * User Guide</a>.</p> <p>For information about the import manifest referenced by
10639          * this API action, see <a
10640          * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/manifest.html">VM
10641          * Import Manifest</a>.</p><p><h3>See Also:</h3>   <a
10642          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeConversionTasks">AWS
10643          * API Reference</a></p>
10644          */
10645         virtual Model::DescribeConversionTasksOutcome DescribeConversionTasks(const Model::DescribeConversionTasksRequest& request) const;
10646 
10647         /**
10648          * <p>Describes the specified conversion tasks or all your conversion tasks. For
10649          * more information, see the <a
10650          * href="https://docs.aws.amazon.com/vm-import/latest/userguide/">VM Import/Export
10651          * User Guide</a>.</p> <p>For information about the import manifest referenced by
10652          * this API action, see <a
10653          * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/manifest.html">VM
10654          * Import Manifest</a>.</p><p><h3>See Also:</h3>   <a
10655          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeConversionTasks">AWS
10656          * API Reference</a></p>
10657          *
10658          * returns a future to the operation so that it can be executed in parallel to other requests.
10659          */
10660         virtual Model::DescribeConversionTasksOutcomeCallable DescribeConversionTasksCallable(const Model::DescribeConversionTasksRequest& request) const;
10661 
10662         /**
10663          * <p>Describes the specified conversion tasks or all your conversion tasks. For
10664          * more information, see the <a
10665          * href="https://docs.aws.amazon.com/vm-import/latest/userguide/">VM Import/Export
10666          * User Guide</a>.</p> <p>For information about the import manifest referenced by
10667          * this API action, see <a
10668          * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/manifest.html">VM
10669          * Import Manifest</a>.</p><p><h3>See Also:</h3>   <a
10670          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeConversionTasks">AWS
10671          * API Reference</a></p>
10672          *
10673          * Queues the request into a thread executor and triggers associated callback when operation has finished.
10674          */
10675         virtual void DescribeConversionTasksAsync(const Model::DescribeConversionTasksRequest& request, const DescribeConversionTasksResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
10676 
10677         /**
10678          * <p>Describes one or more of your VPN customer gateways.</p> <p>For more
10679          * information, see <a
10680          * href="https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html">Amazon Web
10681          * Services Site-to-Site VPN</a> in the <i>Amazon Web Services Site-to-Site VPN
10682          * User Guide</i>.</p><p><h3>See Also:</h3>   <a
10683          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeCustomerGateways">AWS
10684          * API Reference</a></p>
10685          */
10686         virtual Model::DescribeCustomerGatewaysOutcome DescribeCustomerGateways(const Model::DescribeCustomerGatewaysRequest& request) const;
10687 
10688         /**
10689          * <p>Describes one or more of your VPN customer gateways.</p> <p>For more
10690          * information, see <a
10691          * href="https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html">Amazon Web
10692          * Services Site-to-Site VPN</a> in the <i>Amazon Web Services Site-to-Site VPN
10693          * User Guide</i>.</p><p><h3>See Also:</h3>   <a
10694          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeCustomerGateways">AWS
10695          * API Reference</a></p>
10696          *
10697          * returns a future to the operation so that it can be executed in parallel to other requests.
10698          */
10699         virtual Model::DescribeCustomerGatewaysOutcomeCallable DescribeCustomerGatewaysCallable(const Model::DescribeCustomerGatewaysRequest& request) const;
10700 
10701         /**
10702          * <p>Describes one or more of your VPN customer gateways.</p> <p>For more
10703          * information, see <a
10704          * href="https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html">Amazon Web
10705          * Services Site-to-Site VPN</a> in the <i>Amazon Web Services Site-to-Site VPN
10706          * User Guide</i>.</p><p><h3>See Also:</h3>   <a
10707          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeCustomerGateways">AWS
10708          * API Reference</a></p>
10709          *
10710          * Queues the request into a thread executor and triggers associated callback when operation has finished.
10711          */
10712         virtual void DescribeCustomerGatewaysAsync(const Model::DescribeCustomerGatewaysRequest& request, const DescribeCustomerGatewaysResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
10713 
10714         /**
10715          * <p>Describes one or more of your DHCP options sets.</p> <p>For more information,
10716          * see <a
10717          * href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_DHCP_Options.html">DHCP
10718          * options sets</a> in the <i>Amazon Virtual Private Cloud User
10719          * Guide</i>.</p><p><h3>See Also:</h3>   <a
10720          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeDhcpOptions">AWS
10721          * API Reference</a></p>
10722          */
10723         virtual Model::DescribeDhcpOptionsOutcome DescribeDhcpOptions(const Model::DescribeDhcpOptionsRequest& request) const;
10724 
10725         /**
10726          * <p>Describes one or more of your DHCP options sets.</p> <p>For more information,
10727          * see <a
10728          * href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_DHCP_Options.html">DHCP
10729          * options sets</a> in the <i>Amazon Virtual Private Cloud User
10730          * Guide</i>.</p><p><h3>See Also:</h3>   <a
10731          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeDhcpOptions">AWS
10732          * API Reference</a></p>
10733          *
10734          * returns a future to the operation so that it can be executed in parallel to other requests.
10735          */
10736         virtual Model::DescribeDhcpOptionsOutcomeCallable DescribeDhcpOptionsCallable(const Model::DescribeDhcpOptionsRequest& request) const;
10737 
10738         /**
10739          * <p>Describes one or more of your DHCP options sets.</p> <p>For more information,
10740          * see <a
10741          * href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_DHCP_Options.html">DHCP
10742          * options sets</a> in the <i>Amazon Virtual Private Cloud User
10743          * Guide</i>.</p><p><h3>See Also:</h3>   <a
10744          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeDhcpOptions">AWS
10745          * API Reference</a></p>
10746          *
10747          * Queues the request into a thread executor and triggers associated callback when operation has finished.
10748          */
10749         virtual void DescribeDhcpOptionsAsync(const Model::DescribeDhcpOptionsRequest& request, const DescribeDhcpOptionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
10750 
10751         /**
10752          * <p>Describes one or more of your egress-only internet gateways.</p><p><h3>See
10753          * Also:</h3>   <a
10754          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeEgressOnlyInternetGateways">AWS
10755          * API Reference</a></p>
10756          */
10757         virtual Model::DescribeEgressOnlyInternetGatewaysOutcome DescribeEgressOnlyInternetGateways(const Model::DescribeEgressOnlyInternetGatewaysRequest& request) const;
10758 
10759         /**
10760          * <p>Describes one or more of your egress-only internet gateways.</p><p><h3>See
10761          * Also:</h3>   <a
10762          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeEgressOnlyInternetGateways">AWS
10763          * API Reference</a></p>
10764          *
10765          * returns a future to the operation so that it can be executed in parallel to other requests.
10766          */
10767         virtual Model::DescribeEgressOnlyInternetGatewaysOutcomeCallable DescribeEgressOnlyInternetGatewaysCallable(const Model::DescribeEgressOnlyInternetGatewaysRequest& request) const;
10768 
10769         /**
10770          * <p>Describes one or more of your egress-only internet gateways.</p><p><h3>See
10771          * Also:</h3>   <a
10772          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeEgressOnlyInternetGateways">AWS
10773          * API Reference</a></p>
10774          *
10775          * Queues the request into a thread executor and triggers associated callback when operation has finished.
10776          */
10777         virtual void DescribeEgressOnlyInternetGatewaysAsync(const Model::DescribeEgressOnlyInternetGatewaysRequest& request, const DescribeEgressOnlyInternetGatewaysResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
10778 
10779         /**
10780          * <p>Describes the Elastic Graphics accelerator associated with your instances.
10781          * For more information about Elastic Graphics, see <a
10782          * href="https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/elastic-graphics.html">Amazon
10783          * Elastic Graphics</a>.</p><p><h3>See Also:</h3>   <a
10784          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeElasticGpus">AWS
10785          * API Reference</a></p>
10786          */
10787         virtual Model::DescribeElasticGpusOutcome DescribeElasticGpus(const Model::DescribeElasticGpusRequest& request) const;
10788 
10789         /**
10790          * <p>Describes the Elastic Graphics accelerator associated with your instances.
10791          * For more information about Elastic Graphics, see <a
10792          * href="https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/elastic-graphics.html">Amazon
10793          * Elastic Graphics</a>.</p><p><h3>See Also:</h3>   <a
10794          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeElasticGpus">AWS
10795          * API Reference</a></p>
10796          *
10797          * returns a future to the operation so that it can be executed in parallel to other requests.
10798          */
10799         virtual Model::DescribeElasticGpusOutcomeCallable DescribeElasticGpusCallable(const Model::DescribeElasticGpusRequest& request) const;
10800 
10801         /**
10802          * <p>Describes the Elastic Graphics accelerator associated with your instances.
10803          * For more information about Elastic Graphics, see <a
10804          * href="https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/elastic-graphics.html">Amazon
10805          * Elastic Graphics</a>.</p><p><h3>See Also:</h3>   <a
10806          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeElasticGpus">AWS
10807          * API Reference</a></p>
10808          *
10809          * Queues the request into a thread executor and triggers associated callback when operation has finished.
10810          */
10811         virtual void DescribeElasticGpusAsync(const Model::DescribeElasticGpusRequest& request, const DescribeElasticGpusResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
10812 
10813         /**
10814          * <p>Describes the specified export image tasks or all of your export image
10815          * tasks.</p><p><h3>See Also:</h3>   <a
10816          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeExportImageTasks">AWS
10817          * API Reference</a></p>
10818          */
10819         virtual Model::DescribeExportImageTasksOutcome DescribeExportImageTasks(const Model::DescribeExportImageTasksRequest& request) const;
10820 
10821         /**
10822          * <p>Describes the specified export image tasks or all of your export image
10823          * tasks.</p><p><h3>See Also:</h3>   <a
10824          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeExportImageTasks">AWS
10825          * API Reference</a></p>
10826          *
10827          * returns a future to the operation so that it can be executed in parallel to other requests.
10828          */
10829         virtual Model::DescribeExportImageTasksOutcomeCallable DescribeExportImageTasksCallable(const Model::DescribeExportImageTasksRequest& request) const;
10830 
10831         /**
10832          * <p>Describes the specified export image tasks or all of your export image
10833          * tasks.</p><p><h3>See Also:</h3>   <a
10834          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeExportImageTasks">AWS
10835          * API Reference</a></p>
10836          *
10837          * Queues the request into a thread executor and triggers associated callback when operation has finished.
10838          */
10839         virtual void DescribeExportImageTasksAsync(const Model::DescribeExportImageTasksRequest& request, const DescribeExportImageTasksResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
10840 
10841         /**
10842          * <p>Describes the specified export instance tasks or all of your export instance
10843          * tasks.</p><p><h3>See Also:</h3>   <a
10844          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeExportTasks">AWS
10845          * API Reference</a></p>
10846          */
10847         virtual Model::DescribeExportTasksOutcome DescribeExportTasks(const Model::DescribeExportTasksRequest& request) const;
10848 
10849         /**
10850          * <p>Describes the specified export instance tasks or all of your export instance
10851          * tasks.</p><p><h3>See Also:</h3>   <a
10852          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeExportTasks">AWS
10853          * API Reference</a></p>
10854          *
10855          * returns a future to the operation so that it can be executed in parallel to other requests.
10856          */
10857         virtual Model::DescribeExportTasksOutcomeCallable DescribeExportTasksCallable(const Model::DescribeExportTasksRequest& request) const;
10858 
10859         /**
10860          * <p>Describes the specified export instance tasks or all of your export instance
10861          * tasks.</p><p><h3>See Also:</h3>   <a
10862          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeExportTasks">AWS
10863          * API Reference</a></p>
10864          *
10865          * Queues the request into a thread executor and triggers associated callback when operation has finished.
10866          */
10867         virtual void DescribeExportTasksAsync(const Model::DescribeExportTasksRequest& request, const DescribeExportTasksResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
10868 
10869         /**
10870          * <p>Describes the state of fast snapshot restores for your
10871          * snapshots.</p><p><h3>See Also:</h3>   <a
10872          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeFastSnapshotRestores">AWS
10873          * API Reference</a></p>
10874          */
10875         virtual Model::DescribeFastSnapshotRestoresOutcome DescribeFastSnapshotRestores(const Model::DescribeFastSnapshotRestoresRequest& request) const;
10876 
10877         /**
10878          * <p>Describes the state of fast snapshot restores for your
10879          * snapshots.</p><p><h3>See Also:</h3>   <a
10880          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeFastSnapshotRestores">AWS
10881          * API Reference</a></p>
10882          *
10883          * returns a future to the operation so that it can be executed in parallel to other requests.
10884          */
10885         virtual Model::DescribeFastSnapshotRestoresOutcomeCallable DescribeFastSnapshotRestoresCallable(const Model::DescribeFastSnapshotRestoresRequest& request) const;
10886 
10887         /**
10888          * <p>Describes the state of fast snapshot restores for your
10889          * snapshots.</p><p><h3>See Also:</h3>   <a
10890          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeFastSnapshotRestores">AWS
10891          * API Reference</a></p>
10892          *
10893          * Queues the request into a thread executor and triggers associated callback when operation has finished.
10894          */
10895         virtual void DescribeFastSnapshotRestoresAsync(const Model::DescribeFastSnapshotRestoresRequest& request, const DescribeFastSnapshotRestoresResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
10896 
10897         /**
10898          * <p>Describes the events for the specified EC2 Fleet during the specified
10899          * time.</p> <p>EC2 Fleet events are delayed by up to 30 seconds before they can be
10900          * described. This ensures that you can query by the last evaluated time and not
10901          * miss a recorded event. EC2 Fleet events are available for 48 hours.</p> <p>For
10902          * more information, see <a
10903          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/fleet-monitor.html">Monitor
10904          * fleet events using Amazon EventBridge</a> in the <i>Amazon EC2 User
10905          * Guide</i>.</p><p><h3>See Also:</h3>   <a
10906          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeFleetHistory">AWS
10907          * API Reference</a></p>
10908          */
10909         virtual Model::DescribeFleetHistoryOutcome DescribeFleetHistory(const Model::DescribeFleetHistoryRequest& request) const;
10910 
10911         /**
10912          * <p>Describes the events for the specified EC2 Fleet during the specified
10913          * time.</p> <p>EC2 Fleet events are delayed by up to 30 seconds before they can be
10914          * described. This ensures that you can query by the last evaluated time and not
10915          * miss a recorded event. EC2 Fleet events are available for 48 hours.</p> <p>For
10916          * more information, see <a
10917          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/fleet-monitor.html">Monitor
10918          * fleet events using Amazon EventBridge</a> in the <i>Amazon EC2 User
10919          * Guide</i>.</p><p><h3>See Also:</h3>   <a
10920          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeFleetHistory">AWS
10921          * API Reference</a></p>
10922          *
10923          * returns a future to the operation so that it can be executed in parallel to other requests.
10924          */
10925         virtual Model::DescribeFleetHistoryOutcomeCallable DescribeFleetHistoryCallable(const Model::DescribeFleetHistoryRequest& request) const;
10926 
10927         /**
10928          * <p>Describes the events for the specified EC2 Fleet during the specified
10929          * time.</p> <p>EC2 Fleet events are delayed by up to 30 seconds before they can be
10930          * described. This ensures that you can query by the last evaluated time and not
10931          * miss a recorded event. EC2 Fleet events are available for 48 hours.</p> <p>For
10932          * more information, see <a
10933          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/fleet-monitor.html">Monitor
10934          * fleet events using Amazon EventBridge</a> in the <i>Amazon EC2 User
10935          * Guide</i>.</p><p><h3>See Also:</h3>   <a
10936          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeFleetHistory">AWS
10937          * API Reference</a></p>
10938          *
10939          * Queues the request into a thread executor and triggers associated callback when operation has finished.
10940          */
10941         virtual void DescribeFleetHistoryAsync(const Model::DescribeFleetHistoryRequest& request, const DescribeFleetHistoryResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
10942 
10943         /**
10944          * <p>Describes the running instances for the specified EC2 Fleet.</p> <p>For more
10945          * information, see <a
10946          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet.html#monitor-ec2-fleet">Monitoring
10947          * your EC2 Fleet</a> in the <i>Amazon EC2 User Guide</i>.</p><p><h3>See Also:</h3>
10948          * <a
10949          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeFleetInstances">AWS
10950          * API Reference</a></p>
10951          */
10952         virtual Model::DescribeFleetInstancesOutcome DescribeFleetInstances(const Model::DescribeFleetInstancesRequest& request) const;
10953 
10954         /**
10955          * <p>Describes the running instances for the specified EC2 Fleet.</p> <p>For more
10956          * information, see <a
10957          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet.html#monitor-ec2-fleet">Monitoring
10958          * your EC2 Fleet</a> in the <i>Amazon EC2 User Guide</i>.</p><p><h3>See Also:</h3>
10959          * <a
10960          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeFleetInstances">AWS
10961          * API Reference</a></p>
10962          *
10963          * returns a future to the operation so that it can be executed in parallel to other requests.
10964          */
10965         virtual Model::DescribeFleetInstancesOutcomeCallable DescribeFleetInstancesCallable(const Model::DescribeFleetInstancesRequest& request) const;
10966 
10967         /**
10968          * <p>Describes the running instances for the specified EC2 Fleet.</p> <p>For more
10969          * information, see <a
10970          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet.html#monitor-ec2-fleet">Monitoring
10971          * your EC2 Fleet</a> in the <i>Amazon EC2 User Guide</i>.</p><p><h3>See Also:</h3>
10972          * <a
10973          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeFleetInstances">AWS
10974          * API Reference</a></p>
10975          *
10976          * Queues the request into a thread executor and triggers associated callback when operation has finished.
10977          */
10978         virtual void DescribeFleetInstancesAsync(const Model::DescribeFleetInstancesRequest& request, const DescribeFleetInstancesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
10979 
10980         /**
10981          * <p>Describes the specified EC2 Fleets or all of your EC2 Fleets.</p> <p>For more
10982          * information, see <a
10983          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet.html#monitor-ec2-fleet">Monitoring
10984          * your EC2 Fleet</a> in the <i>Amazon EC2 User Guide</i>.</p><p><h3>See Also:</h3>
10985          * <a
10986          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeFleets">AWS
10987          * API Reference</a></p>
10988          */
10989         virtual Model::DescribeFleetsOutcome DescribeFleets(const Model::DescribeFleetsRequest& request) const;
10990 
10991         /**
10992          * <p>Describes the specified EC2 Fleets or all of your EC2 Fleets.</p> <p>For more
10993          * information, see <a
10994          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet.html#monitor-ec2-fleet">Monitoring
10995          * your EC2 Fleet</a> in the <i>Amazon EC2 User Guide</i>.</p><p><h3>See Also:</h3>
10996          * <a
10997          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeFleets">AWS
10998          * API Reference</a></p>
10999          *
11000          * returns a future to the operation so that it can be executed in parallel to other requests.
11001          */
11002         virtual Model::DescribeFleetsOutcomeCallable DescribeFleetsCallable(const Model::DescribeFleetsRequest& request) const;
11003 
11004         /**
11005          * <p>Describes the specified EC2 Fleets or all of your EC2 Fleets.</p> <p>For more
11006          * information, see <a
11007          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet.html#monitor-ec2-fleet">Monitoring
11008          * your EC2 Fleet</a> in the <i>Amazon EC2 User Guide</i>.</p><p><h3>See Also:</h3>
11009          * <a
11010          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeFleets">AWS
11011          * API Reference</a></p>
11012          *
11013          * Queues the request into a thread executor and triggers associated callback when operation has finished.
11014          */
11015         virtual void DescribeFleetsAsync(const Model::DescribeFleetsRequest& request, const DescribeFleetsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
11016 
11017         /**
11018          * <p>Describes one or more flow logs. To view the information in your flow logs
11019          * (the log streams for the network interfaces), you must use the CloudWatch Logs
11020          * console or the CloudWatch Logs API.</p><p><h3>See Also:</h3>   <a
11021          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeFlowLogs">AWS
11022          * API Reference</a></p>
11023          */
11024         virtual Model::DescribeFlowLogsOutcome DescribeFlowLogs(const Model::DescribeFlowLogsRequest& request) const;
11025 
11026         /**
11027          * <p>Describes one or more flow logs. To view the information in your flow logs
11028          * (the log streams for the network interfaces), you must use the CloudWatch Logs
11029          * console or the CloudWatch Logs API.</p><p><h3>See Also:</h3>   <a
11030          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeFlowLogs">AWS
11031          * API Reference</a></p>
11032          *
11033          * returns a future to the operation so that it can be executed in parallel to other requests.
11034          */
11035         virtual Model::DescribeFlowLogsOutcomeCallable DescribeFlowLogsCallable(const Model::DescribeFlowLogsRequest& request) const;
11036 
11037         /**
11038          * <p>Describes one or more flow logs. To view the information in your flow logs
11039          * (the log streams for the network interfaces), you must use the CloudWatch Logs
11040          * console or the CloudWatch Logs API.</p><p><h3>See Also:</h3>   <a
11041          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeFlowLogs">AWS
11042          * API Reference</a></p>
11043          *
11044          * Queues the request into a thread executor and triggers associated callback when operation has finished.
11045          */
11046         virtual void DescribeFlowLogsAsync(const Model::DescribeFlowLogsRequest& request, const DescribeFlowLogsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
11047 
11048         /**
11049          * <p>Describes the specified attribute of the specified Amazon FPGA Image
11050          * (AFI).</p><p><h3>See Also:</h3>   <a
11051          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeFpgaImageAttribute">AWS
11052          * API Reference</a></p>
11053          */
11054         virtual Model::DescribeFpgaImageAttributeOutcome DescribeFpgaImageAttribute(const Model::DescribeFpgaImageAttributeRequest& request) const;
11055 
11056         /**
11057          * <p>Describes the specified attribute of the specified Amazon FPGA Image
11058          * (AFI).</p><p><h3>See Also:</h3>   <a
11059          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeFpgaImageAttribute">AWS
11060          * API Reference</a></p>
11061          *
11062          * returns a future to the operation so that it can be executed in parallel to other requests.
11063          */
11064         virtual Model::DescribeFpgaImageAttributeOutcomeCallable DescribeFpgaImageAttributeCallable(const Model::DescribeFpgaImageAttributeRequest& request) const;
11065 
11066         /**
11067          * <p>Describes the specified attribute of the specified Amazon FPGA Image
11068          * (AFI).</p><p><h3>See Also:</h3>   <a
11069          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeFpgaImageAttribute">AWS
11070          * API Reference</a></p>
11071          *
11072          * Queues the request into a thread executor and triggers associated callback when operation has finished.
11073          */
11074         virtual void DescribeFpgaImageAttributeAsync(const Model::DescribeFpgaImageAttributeRequest& request, const DescribeFpgaImageAttributeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
11075 
11076         /**
11077          * <p>Describes the Amazon FPGA Images (AFIs) available to you. These include
11078          * public AFIs, private AFIs that you own, and AFIs owned by other Amazon Web
11079          * Services accounts for which you have load permissions.</p><p><h3>See Also:</h3>
11080          * <a
11081          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeFpgaImages">AWS
11082          * API Reference</a></p>
11083          */
11084         virtual Model::DescribeFpgaImagesOutcome DescribeFpgaImages(const Model::DescribeFpgaImagesRequest& request) const;
11085 
11086         /**
11087          * <p>Describes the Amazon FPGA Images (AFIs) available to you. These include
11088          * public AFIs, private AFIs that you own, and AFIs owned by other Amazon Web
11089          * Services accounts for which you have load permissions.</p><p><h3>See Also:</h3>
11090          * <a
11091          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeFpgaImages">AWS
11092          * API Reference</a></p>
11093          *
11094          * returns a future to the operation so that it can be executed in parallel to other requests.
11095          */
11096         virtual Model::DescribeFpgaImagesOutcomeCallable DescribeFpgaImagesCallable(const Model::DescribeFpgaImagesRequest& request) const;
11097 
11098         /**
11099          * <p>Describes the Amazon FPGA Images (AFIs) available to you. These include
11100          * public AFIs, private AFIs that you own, and AFIs owned by other Amazon Web
11101          * Services accounts for which you have load permissions.</p><p><h3>See Also:</h3>
11102          * <a
11103          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeFpgaImages">AWS
11104          * API Reference</a></p>
11105          *
11106          * Queues the request into a thread executor and triggers associated callback when operation has finished.
11107          */
11108         virtual void DescribeFpgaImagesAsync(const Model::DescribeFpgaImagesRequest& request, const DescribeFpgaImagesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
11109 
11110         /**
11111          * <p>Describes the Dedicated Host reservations that are available to purchase.</p>
11112          * <p>The results describe all of the Dedicated Host reservation offerings,
11113          * including offerings that might not match the instance family and Region of your
11114          * Dedicated Hosts. When purchasing an offering, ensure that the instance family
11115          * and Region of the offering matches that of the Dedicated Hosts with which it is
11116          * to be associated. For more information about supported instance types, see <a
11117          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-hosts-overview.html">Dedicated
11118          * Hosts</a> in the <i>Amazon EC2 User Guide</i>. </p><p><h3>See Also:</h3>   <a
11119          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeHostReservationOfferings">AWS
11120          * API Reference</a></p>
11121          */
11122         virtual Model::DescribeHostReservationOfferingsOutcome DescribeHostReservationOfferings(const Model::DescribeHostReservationOfferingsRequest& request) const;
11123 
11124         /**
11125          * <p>Describes the Dedicated Host reservations that are available to purchase.</p>
11126          * <p>The results describe all of the Dedicated Host reservation offerings,
11127          * including offerings that might not match the instance family and Region of your
11128          * Dedicated Hosts. When purchasing an offering, ensure that the instance family
11129          * and Region of the offering matches that of the Dedicated Hosts with which it is
11130          * to be associated. For more information about supported instance types, see <a
11131          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-hosts-overview.html">Dedicated
11132          * Hosts</a> in the <i>Amazon EC2 User Guide</i>. </p><p><h3>See Also:</h3>   <a
11133          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeHostReservationOfferings">AWS
11134          * API Reference</a></p>
11135          *
11136          * returns a future to the operation so that it can be executed in parallel to other requests.
11137          */
11138         virtual Model::DescribeHostReservationOfferingsOutcomeCallable DescribeHostReservationOfferingsCallable(const Model::DescribeHostReservationOfferingsRequest& request) const;
11139 
11140         /**
11141          * <p>Describes the Dedicated Host reservations that are available to purchase.</p>
11142          * <p>The results describe all of the Dedicated Host reservation offerings,
11143          * including offerings that might not match the instance family and Region of your
11144          * Dedicated Hosts. When purchasing an offering, ensure that the instance family
11145          * and Region of the offering matches that of the Dedicated Hosts with which it is
11146          * to be associated. For more information about supported instance types, see <a
11147          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-hosts-overview.html">Dedicated
11148          * Hosts</a> in the <i>Amazon EC2 User Guide</i>. </p><p><h3>See Also:</h3>   <a
11149          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeHostReservationOfferings">AWS
11150          * API Reference</a></p>
11151          *
11152          * Queues the request into a thread executor and triggers associated callback when operation has finished.
11153          */
11154         virtual void DescribeHostReservationOfferingsAsync(const Model::DescribeHostReservationOfferingsRequest& request, const DescribeHostReservationOfferingsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
11155 
11156         /**
11157          * <p>Describes reservations that are associated with Dedicated Hosts in your
11158          * account.</p><p><h3>See Also:</h3>   <a
11159          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeHostReservations">AWS
11160          * API Reference</a></p>
11161          */
11162         virtual Model::DescribeHostReservationsOutcome DescribeHostReservations(const Model::DescribeHostReservationsRequest& request) const;
11163 
11164         /**
11165          * <p>Describes reservations that are associated with Dedicated Hosts in your
11166          * account.</p><p><h3>See Also:</h3>   <a
11167          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeHostReservations">AWS
11168          * API Reference</a></p>
11169          *
11170          * returns a future to the operation so that it can be executed in parallel to other requests.
11171          */
11172         virtual Model::DescribeHostReservationsOutcomeCallable DescribeHostReservationsCallable(const Model::DescribeHostReservationsRequest& request) const;
11173 
11174         /**
11175          * <p>Describes reservations that are associated with Dedicated Hosts in your
11176          * account.</p><p><h3>See Also:</h3>   <a
11177          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeHostReservations">AWS
11178          * API Reference</a></p>
11179          *
11180          * Queues the request into a thread executor and triggers associated callback when operation has finished.
11181          */
11182         virtual void DescribeHostReservationsAsync(const Model::DescribeHostReservationsRequest& request, const DescribeHostReservationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
11183 
11184         /**
11185          * <p>Describes the specified Dedicated Hosts or all your Dedicated Hosts.</p>
11186          * <p>The results describe only the Dedicated Hosts in the Region you're currently
11187          * using. All listed instances consume capacity on your Dedicated Host. Dedicated
11188          * Hosts that have recently been released are listed with the state
11189          * <code>released</code>.</p><p><h3>See Also:</h3>   <a
11190          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeHosts">AWS
11191          * API Reference</a></p>
11192          */
11193         virtual Model::DescribeHostsOutcome DescribeHosts(const Model::DescribeHostsRequest& request) const;
11194 
11195         /**
11196          * <p>Describes the specified Dedicated Hosts or all your Dedicated Hosts.</p>
11197          * <p>The results describe only the Dedicated Hosts in the Region you're currently
11198          * using. All listed instances consume capacity on your Dedicated Host. Dedicated
11199          * Hosts that have recently been released are listed with the state
11200          * <code>released</code>.</p><p><h3>See Also:</h3>   <a
11201          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeHosts">AWS
11202          * API Reference</a></p>
11203          *
11204          * returns a future to the operation so that it can be executed in parallel to other requests.
11205          */
11206         virtual Model::DescribeHostsOutcomeCallable DescribeHostsCallable(const Model::DescribeHostsRequest& request) const;
11207 
11208         /**
11209          * <p>Describes the specified Dedicated Hosts or all your Dedicated Hosts.</p>
11210          * <p>The results describe only the Dedicated Hosts in the Region you're currently
11211          * using. All listed instances consume capacity on your Dedicated Host. Dedicated
11212          * Hosts that have recently been released are listed with the state
11213          * <code>released</code>.</p><p><h3>See Also:</h3>   <a
11214          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeHosts">AWS
11215          * API Reference</a></p>
11216          *
11217          * Queues the request into a thread executor and triggers associated callback when operation has finished.
11218          */
11219         virtual void DescribeHostsAsync(const Model::DescribeHostsRequest& request, const DescribeHostsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
11220 
11221         /**
11222          * <p>Describes your IAM instance profile associations.</p><p><h3>See Also:</h3>
11223          * <a
11224          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeIamInstanceProfileAssociations">AWS
11225          * API Reference</a></p>
11226          */
11227         virtual Model::DescribeIamInstanceProfileAssociationsOutcome DescribeIamInstanceProfileAssociations(const Model::DescribeIamInstanceProfileAssociationsRequest& request) const;
11228 
11229         /**
11230          * <p>Describes your IAM instance profile associations.</p><p><h3>See Also:</h3>
11231          * <a
11232          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeIamInstanceProfileAssociations">AWS
11233          * API Reference</a></p>
11234          *
11235          * returns a future to the operation so that it can be executed in parallel to other requests.
11236          */
11237         virtual Model::DescribeIamInstanceProfileAssociationsOutcomeCallable DescribeIamInstanceProfileAssociationsCallable(const Model::DescribeIamInstanceProfileAssociationsRequest& request) const;
11238 
11239         /**
11240          * <p>Describes your IAM instance profile associations.</p><p><h3>See Also:</h3>
11241          * <a
11242          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeIamInstanceProfileAssociations">AWS
11243          * API Reference</a></p>
11244          *
11245          * Queues the request into a thread executor and triggers associated callback when operation has finished.
11246          */
11247         virtual void DescribeIamInstanceProfileAssociationsAsync(const Model::DescribeIamInstanceProfileAssociationsRequest& request, const DescribeIamInstanceProfileAssociationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
11248 
11249         /**
11250          * <p>Describes the ID format settings for your resources on a per-Region basis,
11251          * for example, to view which resource types are enabled for longer IDs. This
11252          * request only returns information about resource types whose ID formats can be
11253          * modified; it does not return information about other resource types.</p> <p>The
11254          * following resource types support longer IDs: <code>bundle</code> |
11255          * <code>conversion-task</code> | <code>customer-gateway</code> |
11256          * <code>dhcp-options</code> | <code>elastic-ip-allocation</code> |
11257          * <code>elastic-ip-association</code> | <code>export-task</code> |
11258          * <code>flow-log</code> | <code>image</code> | <code>import-task</code> |
11259          * <code>instance</code> | <code>internet-gateway</code> | <code>network-acl</code>
11260          * | <code>network-acl-association</code> | <code>network-interface</code> |
11261          * <code>network-interface-attachment</code> | <code>prefix-list</code> |
11262          * <code>reservation</code> | <code>route-table</code> |
11263          * <code>route-table-association</code> | <code>security-group</code> |
11264          * <code>snapshot</code> | <code>subnet</code> |
11265          * <code>subnet-cidr-block-association</code> | <code>volume</code> |
11266          * <code>vpc</code> | <code>vpc-cidr-block-association</code> |
11267          * <code>vpc-endpoint</code> | <code>vpc-peering-connection</code> |
11268          * <code>vpn-connection</code> | <code>vpn-gateway</code>. </p> <p>These settings
11269          * apply to the IAM user who makes the request; they do not apply to the entire
11270          * Amazon Web Services account. By default, an IAM user defaults to the same
11271          * settings as the root user, unless they explicitly override the settings by
11272          * running the <a>ModifyIdFormat</a> command. Resources created with longer IDs are
11273          * visible to all IAM users, regardless of these settings and provided that they
11274          * have permission to use the relevant <code>Describe</code> command for the
11275          * resource type.</p><p><h3>See Also:</h3>   <a
11276          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeIdFormat">AWS
11277          * API Reference</a></p>
11278          */
11279         virtual Model::DescribeIdFormatOutcome DescribeIdFormat(const Model::DescribeIdFormatRequest& request) const;
11280 
11281         /**
11282          * <p>Describes the ID format settings for your resources on a per-Region basis,
11283          * for example, to view which resource types are enabled for longer IDs. This
11284          * request only returns information about resource types whose ID formats can be
11285          * modified; it does not return information about other resource types.</p> <p>The
11286          * following resource types support longer IDs: <code>bundle</code> |
11287          * <code>conversion-task</code> | <code>customer-gateway</code> |
11288          * <code>dhcp-options</code> | <code>elastic-ip-allocation</code> |
11289          * <code>elastic-ip-association</code> | <code>export-task</code> |
11290          * <code>flow-log</code> | <code>image</code> | <code>import-task</code> |
11291          * <code>instance</code> | <code>internet-gateway</code> | <code>network-acl</code>
11292          * | <code>network-acl-association</code> | <code>network-interface</code> |
11293          * <code>network-interface-attachment</code> | <code>prefix-list</code> |
11294          * <code>reservation</code> | <code>route-table</code> |
11295          * <code>route-table-association</code> | <code>security-group</code> |
11296          * <code>snapshot</code> | <code>subnet</code> |
11297          * <code>subnet-cidr-block-association</code> | <code>volume</code> |
11298          * <code>vpc</code> | <code>vpc-cidr-block-association</code> |
11299          * <code>vpc-endpoint</code> | <code>vpc-peering-connection</code> |
11300          * <code>vpn-connection</code> | <code>vpn-gateway</code>. </p> <p>These settings
11301          * apply to the IAM user who makes the request; they do not apply to the entire
11302          * Amazon Web Services account. By default, an IAM user defaults to the same
11303          * settings as the root user, unless they explicitly override the settings by
11304          * running the <a>ModifyIdFormat</a> command. Resources created with longer IDs are
11305          * visible to all IAM users, regardless of these settings and provided that they
11306          * have permission to use the relevant <code>Describe</code> command for the
11307          * resource type.</p><p><h3>See Also:</h3>   <a
11308          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeIdFormat">AWS
11309          * API Reference</a></p>
11310          *
11311          * returns a future to the operation so that it can be executed in parallel to other requests.
11312          */
11313         virtual Model::DescribeIdFormatOutcomeCallable DescribeIdFormatCallable(const Model::DescribeIdFormatRequest& request) const;
11314 
11315         /**
11316          * <p>Describes the ID format settings for your resources on a per-Region basis,
11317          * for example, to view which resource types are enabled for longer IDs. This
11318          * request only returns information about resource types whose ID formats can be
11319          * modified; it does not return information about other resource types.</p> <p>The
11320          * following resource types support longer IDs: <code>bundle</code> |
11321          * <code>conversion-task</code> | <code>customer-gateway</code> |
11322          * <code>dhcp-options</code> | <code>elastic-ip-allocation</code> |
11323          * <code>elastic-ip-association</code> | <code>export-task</code> |
11324          * <code>flow-log</code> | <code>image</code> | <code>import-task</code> |
11325          * <code>instance</code> | <code>internet-gateway</code> | <code>network-acl</code>
11326          * | <code>network-acl-association</code> | <code>network-interface</code> |
11327          * <code>network-interface-attachment</code> | <code>prefix-list</code> |
11328          * <code>reservation</code> | <code>route-table</code> |
11329          * <code>route-table-association</code> | <code>security-group</code> |
11330          * <code>snapshot</code> | <code>subnet</code> |
11331          * <code>subnet-cidr-block-association</code> | <code>volume</code> |
11332          * <code>vpc</code> | <code>vpc-cidr-block-association</code> |
11333          * <code>vpc-endpoint</code> | <code>vpc-peering-connection</code> |
11334          * <code>vpn-connection</code> | <code>vpn-gateway</code>. </p> <p>These settings
11335          * apply to the IAM user who makes the request; they do not apply to the entire
11336          * Amazon Web Services account. By default, an IAM user defaults to the same
11337          * settings as the root user, unless they explicitly override the settings by
11338          * running the <a>ModifyIdFormat</a> command. Resources created with longer IDs are
11339          * visible to all IAM users, regardless of these settings and provided that they
11340          * have permission to use the relevant <code>Describe</code> command for the
11341          * resource type.</p><p><h3>See Also:</h3>   <a
11342          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeIdFormat">AWS
11343          * API Reference</a></p>
11344          *
11345          * Queues the request into a thread executor and triggers associated callback when operation has finished.
11346          */
11347         virtual void DescribeIdFormatAsync(const Model::DescribeIdFormatRequest& request, const DescribeIdFormatResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
11348 
11349         /**
11350          * <p>Describes the ID format settings for resources for the specified IAM user,
11351          * IAM role, or root user. For example, you can view the resource types that are
11352          * enabled for longer IDs. This request only returns information about resource
11353          * types whose ID formats can be modified; it does not return information about
11354          * other resource types. For more information, see <a
11355          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/resource-ids.html">Resource
11356          * IDs</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>. </p> <p>The
11357          * following resource types support longer IDs: <code>bundle</code> |
11358          * <code>conversion-task</code> | <code>customer-gateway</code> |
11359          * <code>dhcp-options</code> | <code>elastic-ip-allocation</code> |
11360          * <code>elastic-ip-association</code> | <code>export-task</code> |
11361          * <code>flow-log</code> | <code>image</code> | <code>import-task</code> |
11362          * <code>instance</code> | <code>internet-gateway</code> | <code>network-acl</code>
11363          * | <code>network-acl-association</code> | <code>network-interface</code> |
11364          * <code>network-interface-attachment</code> | <code>prefix-list</code> |
11365          * <code>reservation</code> | <code>route-table</code> |
11366          * <code>route-table-association</code> | <code>security-group</code> |
11367          * <code>snapshot</code> | <code>subnet</code> |
11368          * <code>subnet-cidr-block-association</code> | <code>volume</code> |
11369          * <code>vpc</code> | <code>vpc-cidr-block-association</code> |
11370          * <code>vpc-endpoint</code> | <code>vpc-peering-connection</code> |
11371          * <code>vpn-connection</code> | <code>vpn-gateway</code>. </p> <p>These settings
11372          * apply to the principal specified in the request. They do not apply to the
11373          * principal that makes the request.</p><p><h3>See Also:</h3>   <a
11374          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeIdentityIdFormat">AWS
11375          * API Reference</a></p>
11376          */
11377         virtual Model::DescribeIdentityIdFormatOutcome DescribeIdentityIdFormat(const Model::DescribeIdentityIdFormatRequest& request) const;
11378 
11379         /**
11380          * <p>Describes the ID format settings for resources for the specified IAM user,
11381          * IAM role, or root user. For example, you can view the resource types that are
11382          * enabled for longer IDs. This request only returns information about resource
11383          * types whose ID formats can be modified; it does not return information about
11384          * other resource types. For more information, see <a
11385          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/resource-ids.html">Resource
11386          * IDs</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>. </p> <p>The
11387          * following resource types support longer IDs: <code>bundle</code> |
11388          * <code>conversion-task</code> | <code>customer-gateway</code> |
11389          * <code>dhcp-options</code> | <code>elastic-ip-allocation</code> |
11390          * <code>elastic-ip-association</code> | <code>export-task</code> |
11391          * <code>flow-log</code> | <code>image</code> | <code>import-task</code> |
11392          * <code>instance</code> | <code>internet-gateway</code> | <code>network-acl</code>
11393          * | <code>network-acl-association</code> | <code>network-interface</code> |
11394          * <code>network-interface-attachment</code> | <code>prefix-list</code> |
11395          * <code>reservation</code> | <code>route-table</code> |
11396          * <code>route-table-association</code> | <code>security-group</code> |
11397          * <code>snapshot</code> | <code>subnet</code> |
11398          * <code>subnet-cidr-block-association</code> | <code>volume</code> |
11399          * <code>vpc</code> | <code>vpc-cidr-block-association</code> |
11400          * <code>vpc-endpoint</code> | <code>vpc-peering-connection</code> |
11401          * <code>vpn-connection</code> | <code>vpn-gateway</code>. </p> <p>These settings
11402          * apply to the principal specified in the request. They do not apply to the
11403          * principal that makes the request.</p><p><h3>See Also:</h3>   <a
11404          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeIdentityIdFormat">AWS
11405          * API Reference</a></p>
11406          *
11407          * returns a future to the operation so that it can be executed in parallel to other requests.
11408          */
11409         virtual Model::DescribeIdentityIdFormatOutcomeCallable DescribeIdentityIdFormatCallable(const Model::DescribeIdentityIdFormatRequest& request) const;
11410 
11411         /**
11412          * <p>Describes the ID format settings for resources for the specified IAM user,
11413          * IAM role, or root user. For example, you can view the resource types that are
11414          * enabled for longer IDs. This request only returns information about resource
11415          * types whose ID formats can be modified; it does not return information about
11416          * other resource types. For more information, see <a
11417          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/resource-ids.html">Resource
11418          * IDs</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>. </p> <p>The
11419          * following resource types support longer IDs: <code>bundle</code> |
11420          * <code>conversion-task</code> | <code>customer-gateway</code> |
11421          * <code>dhcp-options</code> | <code>elastic-ip-allocation</code> |
11422          * <code>elastic-ip-association</code> | <code>export-task</code> |
11423          * <code>flow-log</code> | <code>image</code> | <code>import-task</code> |
11424          * <code>instance</code> | <code>internet-gateway</code> | <code>network-acl</code>
11425          * | <code>network-acl-association</code> | <code>network-interface</code> |
11426          * <code>network-interface-attachment</code> | <code>prefix-list</code> |
11427          * <code>reservation</code> | <code>route-table</code> |
11428          * <code>route-table-association</code> | <code>security-group</code> |
11429          * <code>snapshot</code> | <code>subnet</code> |
11430          * <code>subnet-cidr-block-association</code> | <code>volume</code> |
11431          * <code>vpc</code> | <code>vpc-cidr-block-association</code> |
11432          * <code>vpc-endpoint</code> | <code>vpc-peering-connection</code> |
11433          * <code>vpn-connection</code> | <code>vpn-gateway</code>. </p> <p>These settings
11434          * apply to the principal specified in the request. They do not apply to the
11435          * principal that makes the request.</p><p><h3>See Also:</h3>   <a
11436          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeIdentityIdFormat">AWS
11437          * API Reference</a></p>
11438          *
11439          * Queues the request into a thread executor and triggers associated callback when operation has finished.
11440          */
11441         virtual void DescribeIdentityIdFormatAsync(const Model::DescribeIdentityIdFormatRequest& request, const DescribeIdentityIdFormatResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
11442 
11443         /**
11444          * <p>Describes the specified attribute of the specified AMI. You can specify only
11445          * one attribute at a time.</p><p><h3>See Also:</h3>   <a
11446          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeImageAttribute">AWS
11447          * API Reference</a></p>
11448          */
11449         virtual Model::DescribeImageAttributeOutcome DescribeImageAttribute(const Model::DescribeImageAttributeRequest& request) const;
11450 
11451         /**
11452          * <p>Describes the specified attribute of the specified AMI. You can specify only
11453          * one attribute at a time.</p><p><h3>See Also:</h3>   <a
11454          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeImageAttribute">AWS
11455          * API Reference</a></p>
11456          *
11457          * returns a future to the operation so that it can be executed in parallel to other requests.
11458          */
11459         virtual Model::DescribeImageAttributeOutcomeCallable DescribeImageAttributeCallable(const Model::DescribeImageAttributeRequest& request) const;
11460 
11461         /**
11462          * <p>Describes the specified attribute of the specified AMI. You can specify only
11463          * one attribute at a time.</p><p><h3>See Also:</h3>   <a
11464          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeImageAttribute">AWS
11465          * API Reference</a></p>
11466          *
11467          * Queues the request into a thread executor and triggers associated callback when operation has finished.
11468          */
11469         virtual void DescribeImageAttributeAsync(const Model::DescribeImageAttributeRequest& request, const DescribeImageAttributeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
11470 
11471         /**
11472          * <p>Describes the specified images (AMIs, AKIs, and ARIs) available to you or all
11473          * of the images available to you.</p> <p>The images available to you include
11474          * public images, private images that you own, and private images owned by other
11475          * Amazon Web Services accounts for which you have explicit launch permissions.</p>
11476          * <p>Recently deregistered images appear in the returned results for a short
11477          * interval and then return empty results. After all instances that reference a
11478          * deregistered AMI are terminated, specifying the ID of the image will eventually
11479          * return an error indicating that the AMI ID cannot be found.</p><p><h3>See
11480          * Also:</h3>   <a
11481          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeImages">AWS
11482          * API Reference</a></p>
11483          */
11484         virtual Model::DescribeImagesOutcome DescribeImages(const Model::DescribeImagesRequest& request) const;
11485 
11486         /**
11487          * <p>Describes the specified images (AMIs, AKIs, and ARIs) available to you or all
11488          * of the images available to you.</p> <p>The images available to you include
11489          * public images, private images that you own, and private images owned by other
11490          * Amazon Web Services accounts for which you have explicit launch permissions.</p>
11491          * <p>Recently deregistered images appear in the returned results for a short
11492          * interval and then return empty results. After all instances that reference a
11493          * deregistered AMI are terminated, specifying the ID of the image will eventually
11494          * return an error indicating that the AMI ID cannot be found.</p><p><h3>See
11495          * Also:</h3>   <a
11496          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeImages">AWS
11497          * API Reference</a></p>
11498          *
11499          * returns a future to the operation so that it can be executed in parallel to other requests.
11500          */
11501         virtual Model::DescribeImagesOutcomeCallable DescribeImagesCallable(const Model::DescribeImagesRequest& request) const;
11502 
11503         /**
11504          * <p>Describes the specified images (AMIs, AKIs, and ARIs) available to you or all
11505          * of the images available to you.</p> <p>The images available to you include
11506          * public images, private images that you own, and private images owned by other
11507          * Amazon Web Services accounts for which you have explicit launch permissions.</p>
11508          * <p>Recently deregistered images appear in the returned results for a short
11509          * interval and then return empty results. After all instances that reference a
11510          * deregistered AMI are terminated, specifying the ID of the image will eventually
11511          * return an error indicating that the AMI ID cannot be found.</p><p><h3>See
11512          * Also:</h3>   <a
11513          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeImages">AWS
11514          * API Reference</a></p>
11515          *
11516          * Queues the request into a thread executor and triggers associated callback when operation has finished.
11517          */
11518         virtual void DescribeImagesAsync(const Model::DescribeImagesRequest& request, const DescribeImagesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
11519 
11520         /**
11521          * <p>Displays details about an import virtual machine or import snapshot tasks
11522          * that are already created.</p><p><h3>See Also:</h3>   <a
11523          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeImportImageTasks">AWS
11524          * API Reference</a></p>
11525          */
11526         virtual Model::DescribeImportImageTasksOutcome DescribeImportImageTasks(const Model::DescribeImportImageTasksRequest& request) const;
11527 
11528         /**
11529          * <p>Displays details about an import virtual machine or import snapshot tasks
11530          * that are already created.</p><p><h3>See Also:</h3>   <a
11531          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeImportImageTasks">AWS
11532          * API Reference</a></p>
11533          *
11534          * returns a future to the operation so that it can be executed in parallel to other requests.
11535          */
11536         virtual Model::DescribeImportImageTasksOutcomeCallable DescribeImportImageTasksCallable(const Model::DescribeImportImageTasksRequest& request) const;
11537 
11538         /**
11539          * <p>Displays details about an import virtual machine or import snapshot tasks
11540          * that are already created.</p><p><h3>See Also:</h3>   <a
11541          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeImportImageTasks">AWS
11542          * API Reference</a></p>
11543          *
11544          * Queues the request into a thread executor and triggers associated callback when operation has finished.
11545          */
11546         virtual void DescribeImportImageTasksAsync(const Model::DescribeImportImageTasksRequest& request, const DescribeImportImageTasksResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
11547 
11548         /**
11549          * <p>Describes your import snapshot tasks.</p><p><h3>See Also:</h3>   <a
11550          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeImportSnapshotTasks">AWS
11551          * API Reference</a></p>
11552          */
11553         virtual Model::DescribeImportSnapshotTasksOutcome DescribeImportSnapshotTasks(const Model::DescribeImportSnapshotTasksRequest& request) const;
11554 
11555         /**
11556          * <p>Describes your import snapshot tasks.</p><p><h3>See Also:</h3>   <a
11557          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeImportSnapshotTasks">AWS
11558          * API Reference</a></p>
11559          *
11560          * returns a future to the operation so that it can be executed in parallel to other requests.
11561          */
11562         virtual Model::DescribeImportSnapshotTasksOutcomeCallable DescribeImportSnapshotTasksCallable(const Model::DescribeImportSnapshotTasksRequest& request) const;
11563 
11564         /**
11565          * <p>Describes your import snapshot tasks.</p><p><h3>See Also:</h3>   <a
11566          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeImportSnapshotTasks">AWS
11567          * API Reference</a></p>
11568          *
11569          * Queues the request into a thread executor and triggers associated callback when operation has finished.
11570          */
11571         virtual void DescribeImportSnapshotTasksAsync(const Model::DescribeImportSnapshotTasksRequest& request, const DescribeImportSnapshotTasksResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
11572 
11573         /**
11574          * <p>Describes the specified attribute of the specified instance. You can specify
11575          * only one attribute at a time. Valid attribute values are:
11576          * <code>instanceType</code> | <code>kernel</code> | <code>ramdisk</code> |
11577          * <code>userData</code> | <code>disableApiTermination</code> |
11578          * <code>instanceInitiatedShutdownBehavior</code> | <code>rootDeviceName</code> |
11579          * <code>blockDeviceMapping</code> | <code>productCodes</code> |
11580          * <code>sourceDestCheck</code> | <code>groupSet</code> | <code>ebsOptimized</code>
11581          * | <code>sriovNetSupport</code> </p><p><h3>See Also:</h3>   <a
11582          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeInstanceAttribute">AWS
11583          * API Reference</a></p>
11584          */
11585         virtual Model::DescribeInstanceAttributeOutcome DescribeInstanceAttribute(const Model::DescribeInstanceAttributeRequest& request) const;
11586 
11587         /**
11588          * <p>Describes the specified attribute of the specified instance. You can specify
11589          * only one attribute at a time. Valid attribute values are:
11590          * <code>instanceType</code> | <code>kernel</code> | <code>ramdisk</code> |
11591          * <code>userData</code> | <code>disableApiTermination</code> |
11592          * <code>instanceInitiatedShutdownBehavior</code> | <code>rootDeviceName</code> |
11593          * <code>blockDeviceMapping</code> | <code>productCodes</code> |
11594          * <code>sourceDestCheck</code> | <code>groupSet</code> | <code>ebsOptimized</code>
11595          * | <code>sriovNetSupport</code> </p><p><h3>See Also:</h3>   <a
11596          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeInstanceAttribute">AWS
11597          * API Reference</a></p>
11598          *
11599          * returns a future to the operation so that it can be executed in parallel to other requests.
11600          */
11601         virtual Model::DescribeInstanceAttributeOutcomeCallable DescribeInstanceAttributeCallable(const Model::DescribeInstanceAttributeRequest& request) const;
11602 
11603         /**
11604          * <p>Describes the specified attribute of the specified instance. You can specify
11605          * only one attribute at a time. Valid attribute values are:
11606          * <code>instanceType</code> | <code>kernel</code> | <code>ramdisk</code> |
11607          * <code>userData</code> | <code>disableApiTermination</code> |
11608          * <code>instanceInitiatedShutdownBehavior</code> | <code>rootDeviceName</code> |
11609          * <code>blockDeviceMapping</code> | <code>productCodes</code> |
11610          * <code>sourceDestCheck</code> | <code>groupSet</code> | <code>ebsOptimized</code>
11611          * | <code>sriovNetSupport</code> </p><p><h3>See Also:</h3>   <a
11612          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeInstanceAttribute">AWS
11613          * API Reference</a></p>
11614          *
11615          * Queues the request into a thread executor and triggers associated callback when operation has finished.
11616          */
11617         virtual void DescribeInstanceAttributeAsync(const Model::DescribeInstanceAttributeRequest& request, const DescribeInstanceAttributeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
11618 
11619         /**
11620          * <p>Describes the credit option for CPU usage of the specified burstable
11621          * performance instances. The credit options are <code>standard</code> and
11622          * <code>unlimited</code>.</p> <p>If you do not specify an instance ID, Amazon EC2
11623          * returns burstable performance instances with the <code>unlimited</code> credit
11624          * option, as well as instances that were previously configured as T2, T3, and T3a
11625          * with the <code>unlimited</code> credit option. For example, if you resize a T2
11626          * instance, while it is configured as <code>unlimited</code>, to an M4 instance,
11627          * Amazon EC2 returns the M4 instance.</p> <p>If you specify one or more instance
11628          * IDs, Amazon EC2 returns the credit option (<code>standard</code> or
11629          * <code>unlimited</code>) of those instances. If you specify an instance ID that
11630          * is not valid, such as an instance that is not a burstable performance instance,
11631          * an error is returned.</p> <p>Recently terminated instances might appear in the
11632          * returned results. This interval is usually less than one hour.</p> <p>If an
11633          * Availability Zone is experiencing a service disruption and you specify instance
11634          * IDs in the affected zone, or do not specify any instance IDs at all, the call
11635          * fails. If you specify only instance IDs in an unaffected zone, the call works
11636          * normally.</p> <p>For more information, see <a
11637          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html">Burstable
11638          * performance instances</a> in the <i>Amazon EC2 User Guide</i>.</p><p><h3>See
11639          * Also:</h3>   <a
11640          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeInstanceCreditSpecifications">AWS
11641          * API Reference</a></p>
11642          */
11643         virtual Model::DescribeInstanceCreditSpecificationsOutcome DescribeInstanceCreditSpecifications(const Model::DescribeInstanceCreditSpecificationsRequest& request) const;
11644 
11645         /**
11646          * <p>Describes the credit option for CPU usage of the specified burstable
11647          * performance instances. The credit options are <code>standard</code> and
11648          * <code>unlimited</code>.</p> <p>If you do not specify an instance ID, Amazon EC2
11649          * returns burstable performance instances with the <code>unlimited</code> credit
11650          * option, as well as instances that were previously configured as T2, T3, and T3a
11651          * with the <code>unlimited</code> credit option. For example, if you resize a T2
11652          * instance, while it is configured as <code>unlimited</code>, to an M4 instance,
11653          * Amazon EC2 returns the M4 instance.</p> <p>If you specify one or more instance
11654          * IDs, Amazon EC2 returns the credit option (<code>standard</code> or
11655          * <code>unlimited</code>) of those instances. If you specify an instance ID that
11656          * is not valid, such as an instance that is not a burstable performance instance,
11657          * an error is returned.</p> <p>Recently terminated instances might appear in the
11658          * returned results. This interval is usually less than one hour.</p> <p>If an
11659          * Availability Zone is experiencing a service disruption and you specify instance
11660          * IDs in the affected zone, or do not specify any instance IDs at all, the call
11661          * fails. If you specify only instance IDs in an unaffected zone, the call works
11662          * normally.</p> <p>For more information, see <a
11663          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html">Burstable
11664          * performance instances</a> in the <i>Amazon EC2 User Guide</i>.</p><p><h3>See
11665          * Also:</h3>   <a
11666          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeInstanceCreditSpecifications">AWS
11667          * API Reference</a></p>
11668          *
11669          * returns a future to the operation so that it can be executed in parallel to other requests.
11670          */
11671         virtual Model::DescribeInstanceCreditSpecificationsOutcomeCallable DescribeInstanceCreditSpecificationsCallable(const Model::DescribeInstanceCreditSpecificationsRequest& request) const;
11672 
11673         /**
11674          * <p>Describes the credit option for CPU usage of the specified burstable
11675          * performance instances. The credit options are <code>standard</code> and
11676          * <code>unlimited</code>.</p> <p>If you do not specify an instance ID, Amazon EC2
11677          * returns burstable performance instances with the <code>unlimited</code> credit
11678          * option, as well as instances that were previously configured as T2, T3, and T3a
11679          * with the <code>unlimited</code> credit option. For example, if you resize a T2
11680          * instance, while it is configured as <code>unlimited</code>, to an M4 instance,
11681          * Amazon EC2 returns the M4 instance.</p> <p>If you specify one or more instance
11682          * IDs, Amazon EC2 returns the credit option (<code>standard</code> or
11683          * <code>unlimited</code>) of those instances. If you specify an instance ID that
11684          * is not valid, such as an instance that is not a burstable performance instance,
11685          * an error is returned.</p> <p>Recently terminated instances might appear in the
11686          * returned results. This interval is usually less than one hour.</p> <p>If an
11687          * Availability Zone is experiencing a service disruption and you specify instance
11688          * IDs in the affected zone, or do not specify any instance IDs at all, the call
11689          * fails. If you specify only instance IDs in an unaffected zone, the call works
11690          * normally.</p> <p>For more information, see <a
11691          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html">Burstable
11692          * performance instances</a> in the <i>Amazon EC2 User Guide</i>.</p><p><h3>See
11693          * Also:</h3>   <a
11694          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeInstanceCreditSpecifications">AWS
11695          * API Reference</a></p>
11696          *
11697          * Queues the request into a thread executor and triggers associated callback when operation has finished.
11698          */
11699         virtual void DescribeInstanceCreditSpecificationsAsync(const Model::DescribeInstanceCreditSpecificationsRequest& request, const DescribeInstanceCreditSpecificationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
11700 
11701         /**
11702          * <p>Describes the tag keys that are registered to appear in scheduled event
11703          * notifications for resources in the current Region.</p><p><h3>See Also:</h3>   <a
11704          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeInstanceEventNotificationAttributes">AWS
11705          * API Reference</a></p>
11706          */
11707         virtual Model::DescribeInstanceEventNotificationAttributesOutcome DescribeInstanceEventNotificationAttributes(const Model::DescribeInstanceEventNotificationAttributesRequest& request) const;
11708 
11709         /**
11710          * <p>Describes the tag keys that are registered to appear in scheduled event
11711          * notifications for resources in the current Region.</p><p><h3>See Also:</h3>   <a
11712          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeInstanceEventNotificationAttributes">AWS
11713          * API Reference</a></p>
11714          *
11715          * returns a future to the operation so that it can be executed in parallel to other requests.
11716          */
11717         virtual Model::DescribeInstanceEventNotificationAttributesOutcomeCallable DescribeInstanceEventNotificationAttributesCallable(const Model::DescribeInstanceEventNotificationAttributesRequest& request) const;
11718 
11719         /**
11720          * <p>Describes the tag keys that are registered to appear in scheduled event
11721          * notifications for resources in the current Region.</p><p><h3>See Also:</h3>   <a
11722          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeInstanceEventNotificationAttributes">AWS
11723          * API Reference</a></p>
11724          *
11725          * Queues the request into a thread executor and triggers associated callback when operation has finished.
11726          */
11727         virtual void DescribeInstanceEventNotificationAttributesAsync(const Model::DescribeInstanceEventNotificationAttributesRequest& request, const DescribeInstanceEventNotificationAttributesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
11728 
11729         /**
11730          * <p>Describes the specified event windows or all event windows.</p> <p>If you
11731          * specify event window IDs, the output includes information for only the specified
11732          * event windows. If you specify filters, the output includes information for only
11733          * those event windows that meet the filter criteria. If you do not specify event
11734          * windows IDs or filters, the output includes information for all event windows,
11735          * which can affect performance. We recommend that you use pagination to ensure
11736          * that the operation returns quickly and successfully. </p> <p>For more
11737          * information, see <a
11738          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/event-windows.html">Define
11739          * event windows for scheduled events</a> in the <i>Amazon EC2 User
11740          * Guide</i>.</p><p><h3>See Also:</h3>   <a
11741          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeInstanceEventWindows">AWS
11742          * API Reference</a></p>
11743          */
11744         virtual Model::DescribeInstanceEventWindowsOutcome DescribeInstanceEventWindows(const Model::DescribeInstanceEventWindowsRequest& request) const;
11745 
11746         /**
11747          * <p>Describes the specified event windows or all event windows.</p> <p>If you
11748          * specify event window IDs, the output includes information for only the specified
11749          * event windows. If you specify filters, the output includes information for only
11750          * those event windows that meet the filter criteria. If you do not specify event
11751          * windows IDs or filters, the output includes information for all event windows,
11752          * which can affect performance. We recommend that you use pagination to ensure
11753          * that the operation returns quickly and successfully. </p> <p>For more
11754          * information, see <a
11755          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/event-windows.html">Define
11756          * event windows for scheduled events</a> in the <i>Amazon EC2 User
11757          * Guide</i>.</p><p><h3>See Also:</h3>   <a
11758          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeInstanceEventWindows">AWS
11759          * API Reference</a></p>
11760          *
11761          * returns a future to the operation so that it can be executed in parallel to other requests.
11762          */
11763         virtual Model::DescribeInstanceEventWindowsOutcomeCallable DescribeInstanceEventWindowsCallable(const Model::DescribeInstanceEventWindowsRequest& request) const;
11764 
11765         /**
11766          * <p>Describes the specified event windows or all event windows.</p> <p>If you
11767          * specify event window IDs, the output includes information for only the specified
11768          * event windows. If you specify filters, the output includes information for only
11769          * those event windows that meet the filter criteria. If you do not specify event
11770          * windows IDs or filters, the output includes information for all event windows,
11771          * which can affect performance. We recommend that you use pagination to ensure
11772          * that the operation returns quickly and successfully. </p> <p>For more
11773          * information, see <a
11774          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/event-windows.html">Define
11775          * event windows for scheduled events</a> in the <i>Amazon EC2 User
11776          * Guide</i>.</p><p><h3>See Also:</h3>   <a
11777          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeInstanceEventWindows">AWS
11778          * API Reference</a></p>
11779          *
11780          * Queues the request into a thread executor and triggers associated callback when operation has finished.
11781          */
11782         virtual void DescribeInstanceEventWindowsAsync(const Model::DescribeInstanceEventWindowsRequest& request, const DescribeInstanceEventWindowsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
11783 
11784         /**
11785          * <p>Describes the status of the specified instances or all of your instances. By
11786          * default, only running instances are described, unless you specifically indicate
11787          * to return the status of all instances.</p> <p>Instance status includes the
11788          * following components:</p> <ul> <li> <p> <b>Status checks</b> - Amazon EC2
11789          * performs status checks on running EC2 instances to identify hardware and
11790          * software issues. For more information, see <a
11791          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/monitoring-system-instance-status-check.html">Status
11792          * checks for your instances</a> and <a
11793          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/TroubleshootingInstances.html">Troubleshooting
11794          * instances with failed status checks</a> in the <i>Amazon EC2 User Guide</i>.</p>
11795          * </li> <li> <p> <b>Scheduled events</b> - Amazon EC2 can schedule events (such as
11796          * reboot, stop, or terminate) for your instances related to hardware issues,
11797          * software updates, or system maintenance. For more information, see <a
11798          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/monitoring-instances-status-check_sched.html">Scheduled
11799          * events for your instances</a> in the <i>Amazon EC2 User Guide</i>.</p> </li>
11800          * <li> <p> <b>Instance state</b> - You can manage your instances from the moment
11801          * you launch them through their termination. For more information, see <a
11802          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-lifecycle.html">Instance
11803          * lifecycle</a> in the <i>Amazon EC2 User Guide</i>.</p> </li> </ul><p><h3>See
11804          * Also:</h3>   <a
11805          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeInstanceStatus">AWS
11806          * API Reference</a></p>
11807          */
11808         virtual Model::DescribeInstanceStatusOutcome DescribeInstanceStatus(const Model::DescribeInstanceStatusRequest& request) const;
11809 
11810         /**
11811          * <p>Describes the status of the specified instances or all of your instances. By
11812          * default, only running instances are described, unless you specifically indicate
11813          * to return the status of all instances.</p> <p>Instance status includes the
11814          * following components:</p> <ul> <li> <p> <b>Status checks</b> - Amazon EC2
11815          * performs status checks on running EC2 instances to identify hardware and
11816          * software issues. For more information, see <a
11817          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/monitoring-system-instance-status-check.html">Status
11818          * checks for your instances</a> and <a
11819          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/TroubleshootingInstances.html">Troubleshooting
11820          * instances with failed status checks</a> in the <i>Amazon EC2 User Guide</i>.</p>
11821          * </li> <li> <p> <b>Scheduled events</b> - Amazon EC2 can schedule events (such as
11822          * reboot, stop, or terminate) for your instances related to hardware issues,
11823          * software updates, or system maintenance. For more information, see <a
11824          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/monitoring-instances-status-check_sched.html">Scheduled
11825          * events for your instances</a> in the <i>Amazon EC2 User Guide</i>.</p> </li>
11826          * <li> <p> <b>Instance state</b> - You can manage your instances from the moment
11827          * you launch them through their termination. For more information, see <a
11828          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-lifecycle.html">Instance
11829          * lifecycle</a> in the <i>Amazon EC2 User Guide</i>.</p> </li> </ul><p><h3>See
11830          * Also:</h3>   <a
11831          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeInstanceStatus">AWS
11832          * API Reference</a></p>
11833          *
11834          * returns a future to the operation so that it can be executed in parallel to other requests.
11835          */
11836         virtual Model::DescribeInstanceStatusOutcomeCallable DescribeInstanceStatusCallable(const Model::DescribeInstanceStatusRequest& request) const;
11837 
11838         /**
11839          * <p>Describes the status of the specified instances or all of your instances. By
11840          * default, only running instances are described, unless you specifically indicate
11841          * to return the status of all instances.</p> <p>Instance status includes the
11842          * following components:</p> <ul> <li> <p> <b>Status checks</b> - Amazon EC2
11843          * performs status checks on running EC2 instances to identify hardware and
11844          * software issues. For more information, see <a
11845          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/monitoring-system-instance-status-check.html">Status
11846          * checks for your instances</a> and <a
11847          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/TroubleshootingInstances.html">Troubleshooting
11848          * instances with failed status checks</a> in the <i>Amazon EC2 User Guide</i>.</p>
11849          * </li> <li> <p> <b>Scheduled events</b> - Amazon EC2 can schedule events (such as
11850          * reboot, stop, or terminate) for your instances related to hardware issues,
11851          * software updates, or system maintenance. For more information, see <a
11852          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/monitoring-instances-status-check_sched.html">Scheduled
11853          * events for your instances</a> in the <i>Amazon EC2 User Guide</i>.</p> </li>
11854          * <li> <p> <b>Instance state</b> - You can manage your instances from the moment
11855          * you launch them through their termination. For more information, see <a
11856          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-lifecycle.html">Instance
11857          * lifecycle</a> in the <i>Amazon EC2 User Guide</i>.</p> </li> </ul><p><h3>See
11858          * Also:</h3>   <a
11859          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeInstanceStatus">AWS
11860          * API Reference</a></p>
11861          *
11862          * Queues the request into a thread executor and triggers associated callback when operation has finished.
11863          */
11864         virtual void DescribeInstanceStatusAsync(const Model::DescribeInstanceStatusRequest& request, const DescribeInstanceStatusResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
11865 
11866         /**
11867          * <p>Returns a list of all instance types offered. The results can be filtered by
11868          * location (Region or Availability Zone). If no location is specified, the
11869          * instance types offered in the current Region are returned.</p><p><h3>See
11870          * Also:</h3>   <a
11871          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeInstanceTypeOfferings">AWS
11872          * API Reference</a></p>
11873          */
11874         virtual Model::DescribeInstanceTypeOfferingsOutcome DescribeInstanceTypeOfferings(const Model::DescribeInstanceTypeOfferingsRequest& request) const;
11875 
11876         /**
11877          * <p>Returns a list of all instance types offered. The results can be filtered by
11878          * location (Region or Availability Zone). If no location is specified, the
11879          * instance types offered in the current Region are returned.</p><p><h3>See
11880          * Also:</h3>   <a
11881          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeInstanceTypeOfferings">AWS
11882          * API Reference</a></p>
11883          *
11884          * returns a future to the operation so that it can be executed in parallel to other requests.
11885          */
11886         virtual Model::DescribeInstanceTypeOfferingsOutcomeCallable DescribeInstanceTypeOfferingsCallable(const Model::DescribeInstanceTypeOfferingsRequest& request) const;
11887 
11888         /**
11889          * <p>Returns a list of all instance types offered. The results can be filtered by
11890          * location (Region or Availability Zone). If no location is specified, the
11891          * instance types offered in the current Region are returned.</p><p><h3>See
11892          * Also:</h3>   <a
11893          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeInstanceTypeOfferings">AWS
11894          * API Reference</a></p>
11895          *
11896          * Queues the request into a thread executor and triggers associated callback when operation has finished.
11897          */
11898         virtual void DescribeInstanceTypeOfferingsAsync(const Model::DescribeInstanceTypeOfferingsRequest& request, const DescribeInstanceTypeOfferingsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
11899 
11900         /**
11901          * <p>Describes the details of the instance types that are offered in a location.
11902          * The results can be filtered by the attributes of the instance
11903          * types.</p><p><h3>See Also:</h3>   <a
11904          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeInstanceTypes">AWS
11905          * API Reference</a></p>
11906          */
11907         virtual Model::DescribeInstanceTypesOutcome DescribeInstanceTypes(const Model::DescribeInstanceTypesRequest& request) const;
11908 
11909         /**
11910          * <p>Describes the details of the instance types that are offered in a location.
11911          * The results can be filtered by the attributes of the instance
11912          * types.</p><p><h3>See Also:</h3>   <a
11913          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeInstanceTypes">AWS
11914          * API Reference</a></p>
11915          *
11916          * returns a future to the operation so that it can be executed in parallel to other requests.
11917          */
11918         virtual Model::DescribeInstanceTypesOutcomeCallable DescribeInstanceTypesCallable(const Model::DescribeInstanceTypesRequest& request) const;
11919 
11920         /**
11921          * <p>Describes the details of the instance types that are offered in a location.
11922          * The results can be filtered by the attributes of the instance
11923          * types.</p><p><h3>See Also:</h3>   <a
11924          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeInstanceTypes">AWS
11925          * API Reference</a></p>
11926          *
11927          * Queues the request into a thread executor and triggers associated callback when operation has finished.
11928          */
11929         virtual void DescribeInstanceTypesAsync(const Model::DescribeInstanceTypesRequest& request, const DescribeInstanceTypesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
11930 
11931         /**
11932          * <p>Describes the specified instances or all instances.</p> <p>If you specify
11933          * instance IDs, the output includes information for only the specified instances.
11934          * If you specify filters, the output includes information for only those instances
11935          * that meet the filter criteria. If you do not specify instance IDs or filters,
11936          * the output includes information for all instances, which can affect performance.
11937          * We recommend that you use pagination to ensure that the operation returns
11938          * quickly and successfully.</p> <p>If you specify an instance ID that is not
11939          * valid, an error is returned. If you specify an instance that you do not own, it
11940          * is not included in the output.</p> <p>Recently terminated instances might appear
11941          * in the returned results. This interval is usually less than one hour.</p> <p>If
11942          * you describe instances in the rare case where an Availability Zone is
11943          * experiencing a service disruption and you specify instance IDs that are in the
11944          * affected zone, or do not specify any instance IDs at all, the call fails. If you
11945          * describe instances and specify only instance IDs that are in an unaffected zone,
11946          * the call works normally.</p><p><h3>See Also:</h3>   <a
11947          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeInstances">AWS
11948          * API Reference</a></p>
11949          */
11950         virtual Model::DescribeInstancesOutcome DescribeInstances(const Model::DescribeInstancesRequest& request) const;
11951 
11952         /**
11953          * <p>Describes the specified instances or all instances.</p> <p>If you specify
11954          * instance IDs, the output includes information for only the specified instances.
11955          * If you specify filters, the output includes information for only those instances
11956          * that meet the filter criteria. If you do not specify instance IDs or filters,
11957          * the output includes information for all instances, which can affect performance.
11958          * We recommend that you use pagination to ensure that the operation returns
11959          * quickly and successfully.</p> <p>If you specify an instance ID that is not
11960          * valid, an error is returned. If you specify an instance that you do not own, it
11961          * is not included in the output.</p> <p>Recently terminated instances might appear
11962          * in the returned results. This interval is usually less than one hour.</p> <p>If
11963          * you describe instances in the rare case where an Availability Zone is
11964          * experiencing a service disruption and you specify instance IDs that are in the
11965          * affected zone, or do not specify any instance IDs at all, the call fails. If you
11966          * describe instances and specify only instance IDs that are in an unaffected zone,
11967          * the call works normally.</p><p><h3>See Also:</h3>   <a
11968          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeInstances">AWS
11969          * API Reference</a></p>
11970          *
11971          * returns a future to the operation so that it can be executed in parallel to other requests.
11972          */
11973         virtual Model::DescribeInstancesOutcomeCallable DescribeInstancesCallable(const Model::DescribeInstancesRequest& request) const;
11974 
11975         /**
11976          * <p>Describes the specified instances or all instances.</p> <p>If you specify
11977          * instance IDs, the output includes information for only the specified instances.
11978          * If you specify filters, the output includes information for only those instances
11979          * that meet the filter criteria. If you do not specify instance IDs or filters,
11980          * the output includes information for all instances, which can affect performance.
11981          * We recommend that you use pagination to ensure that the operation returns
11982          * quickly and successfully.</p> <p>If you specify an instance ID that is not
11983          * valid, an error is returned. If you specify an instance that you do not own, it
11984          * is not included in the output.</p> <p>Recently terminated instances might appear
11985          * in the returned results. This interval is usually less than one hour.</p> <p>If
11986          * you describe instances in the rare case where an Availability Zone is
11987          * experiencing a service disruption and you specify instance IDs that are in the
11988          * affected zone, or do not specify any instance IDs at all, the call fails. If you
11989          * describe instances and specify only instance IDs that are in an unaffected zone,
11990          * the call works normally.</p><p><h3>See Also:</h3>   <a
11991          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeInstances">AWS
11992          * API Reference</a></p>
11993          *
11994          * Queues the request into a thread executor and triggers associated callback when operation has finished.
11995          */
11996         virtual void DescribeInstancesAsync(const Model::DescribeInstancesRequest& request, const DescribeInstancesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
11997 
11998         /**
11999          * <p>Describes one or more of your internet gateways.</p><p><h3>See Also:</h3>
12000          * <a
12001          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeInternetGateways">AWS
12002          * API Reference</a></p>
12003          */
12004         virtual Model::DescribeInternetGatewaysOutcome DescribeInternetGateways(const Model::DescribeInternetGatewaysRequest& request) const;
12005 
12006         /**
12007          * <p>Describes one or more of your internet gateways.</p><p><h3>See Also:</h3>
12008          * <a
12009          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeInternetGateways">AWS
12010          * API Reference</a></p>
12011          *
12012          * returns a future to the operation so that it can be executed in parallel to other requests.
12013          */
12014         virtual Model::DescribeInternetGatewaysOutcomeCallable DescribeInternetGatewaysCallable(const Model::DescribeInternetGatewaysRequest& request) const;
12015 
12016         /**
12017          * <p>Describes one or more of your internet gateways.</p><p><h3>See Also:</h3>
12018          * <a
12019          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeInternetGateways">AWS
12020          * API Reference</a></p>
12021          *
12022          * Queues the request into a thread executor and triggers associated callback when operation has finished.
12023          */
12024         virtual void DescribeInternetGatewaysAsync(const Model::DescribeInternetGatewaysRequest& request, const DescribeInternetGatewaysResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
12025 
12026         /**
12027          * <p>Describes your IPv6 address pools.</p><p><h3>See Also:</h3>   <a
12028          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeIpv6Pools">AWS
12029          * API Reference</a></p>
12030          */
12031         virtual Model::DescribeIpv6PoolsOutcome DescribeIpv6Pools(const Model::DescribeIpv6PoolsRequest& request) const;
12032 
12033         /**
12034          * <p>Describes your IPv6 address pools.</p><p><h3>See Also:</h3>   <a
12035          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeIpv6Pools">AWS
12036          * API Reference</a></p>
12037          *
12038          * returns a future to the operation so that it can be executed in parallel to other requests.
12039          */
12040         virtual Model::DescribeIpv6PoolsOutcomeCallable DescribeIpv6PoolsCallable(const Model::DescribeIpv6PoolsRequest& request) const;
12041 
12042         /**
12043          * <p>Describes your IPv6 address pools.</p><p><h3>See Also:</h3>   <a
12044          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeIpv6Pools">AWS
12045          * API Reference</a></p>
12046          *
12047          * Queues the request into a thread executor and triggers associated callback when operation has finished.
12048          */
12049         virtual void DescribeIpv6PoolsAsync(const Model::DescribeIpv6PoolsRequest& request, const DescribeIpv6PoolsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
12050 
12051         /**
12052          * <p>Describes the specified key pairs or all of your key pairs.</p> <p>For more
12053          * information about key pairs, see <a
12054          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html">Amazon
12055          * EC2 key pairs</a> in the <i>Amazon Elastic Compute Cloud User
12056          * Guide</i>.</p><p><h3>See Also:</h3>   <a
12057          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeKeyPairs">AWS
12058          * API Reference</a></p>
12059          */
12060         virtual Model::DescribeKeyPairsOutcome DescribeKeyPairs(const Model::DescribeKeyPairsRequest& request) const;
12061 
12062         /**
12063          * <p>Describes the specified key pairs or all of your key pairs.</p> <p>For more
12064          * information about key pairs, see <a
12065          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html">Amazon
12066          * EC2 key pairs</a> in the <i>Amazon Elastic Compute Cloud User
12067          * Guide</i>.</p><p><h3>See Also:</h3>   <a
12068          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeKeyPairs">AWS
12069          * API Reference</a></p>
12070          *
12071          * returns a future to the operation so that it can be executed in parallel to other requests.
12072          */
12073         virtual Model::DescribeKeyPairsOutcomeCallable DescribeKeyPairsCallable(const Model::DescribeKeyPairsRequest& request) const;
12074 
12075         /**
12076          * <p>Describes the specified key pairs or all of your key pairs.</p> <p>For more
12077          * information about key pairs, see <a
12078          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html">Amazon
12079          * EC2 key pairs</a> in the <i>Amazon Elastic Compute Cloud User
12080          * Guide</i>.</p><p><h3>See Also:</h3>   <a
12081          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeKeyPairs">AWS
12082          * API Reference</a></p>
12083          *
12084          * Queues the request into a thread executor and triggers associated callback when operation has finished.
12085          */
12086         virtual void DescribeKeyPairsAsync(const Model::DescribeKeyPairsRequest& request, const DescribeKeyPairsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
12087 
12088         /**
12089          * <p>Describes one or more versions of a specified launch template. You can
12090          * describe all versions, individual versions, or a range of versions. You can also
12091          * describe all the latest versions or all the default versions of all the launch
12092          * templates in your account.</p><p><h3>See Also:</h3>   <a
12093          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeLaunchTemplateVersions">AWS
12094          * API Reference</a></p>
12095          */
12096         virtual Model::DescribeLaunchTemplateVersionsOutcome DescribeLaunchTemplateVersions(const Model::DescribeLaunchTemplateVersionsRequest& request) const;
12097 
12098         /**
12099          * <p>Describes one or more versions of a specified launch template. You can
12100          * describe all versions, individual versions, or a range of versions. You can also
12101          * describe all the latest versions or all the default versions of all the launch
12102          * templates in your account.</p><p><h3>See Also:</h3>   <a
12103          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeLaunchTemplateVersions">AWS
12104          * API Reference</a></p>
12105          *
12106          * returns a future to the operation so that it can be executed in parallel to other requests.
12107          */
12108         virtual Model::DescribeLaunchTemplateVersionsOutcomeCallable DescribeLaunchTemplateVersionsCallable(const Model::DescribeLaunchTemplateVersionsRequest& request) const;
12109 
12110         /**
12111          * <p>Describes one or more versions of a specified launch template. You can
12112          * describe all versions, individual versions, or a range of versions. You can also
12113          * describe all the latest versions or all the default versions of all the launch
12114          * templates in your account.</p><p><h3>See Also:</h3>   <a
12115          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeLaunchTemplateVersions">AWS
12116          * API Reference</a></p>
12117          *
12118          * Queues the request into a thread executor and triggers associated callback when operation has finished.
12119          */
12120         virtual void DescribeLaunchTemplateVersionsAsync(const Model::DescribeLaunchTemplateVersionsRequest& request, const DescribeLaunchTemplateVersionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
12121 
12122         /**
12123          * <p>Describes one or more launch templates.</p><p><h3>See Also:</h3>   <a
12124          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeLaunchTemplates">AWS
12125          * API Reference</a></p>
12126          */
12127         virtual Model::DescribeLaunchTemplatesOutcome DescribeLaunchTemplates(const Model::DescribeLaunchTemplatesRequest& request) const;
12128 
12129         /**
12130          * <p>Describes one or more launch templates.</p><p><h3>See Also:</h3>   <a
12131          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeLaunchTemplates">AWS
12132          * API Reference</a></p>
12133          *
12134          * returns a future to the operation so that it can be executed in parallel to other requests.
12135          */
12136         virtual Model::DescribeLaunchTemplatesOutcomeCallable DescribeLaunchTemplatesCallable(const Model::DescribeLaunchTemplatesRequest& request) const;
12137 
12138         /**
12139          * <p>Describes one or more launch templates.</p><p><h3>See Also:</h3>   <a
12140          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeLaunchTemplates">AWS
12141          * API Reference</a></p>
12142          *
12143          * Queues the request into a thread executor and triggers associated callback when operation has finished.
12144          */
12145         virtual void DescribeLaunchTemplatesAsync(const Model::DescribeLaunchTemplatesRequest& request, const DescribeLaunchTemplatesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
12146 
12147         /**
12148          * <p>Describes the associations between virtual interface groups and local gateway
12149          * route tables.</p><p><h3>See Also:</h3>   <a
12150          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociations">AWS
12151          * API Reference</a></p>
12152          */
12153         virtual Model::DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsOutcome DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociations(const Model::DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsRequest& request) const;
12154 
12155         /**
12156          * <p>Describes the associations between virtual interface groups and local gateway
12157          * route tables.</p><p><h3>See Also:</h3>   <a
12158          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociations">AWS
12159          * API Reference</a></p>
12160          *
12161          * returns a future to the operation so that it can be executed in parallel to other requests.
12162          */
12163         virtual Model::DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsOutcomeCallable DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsCallable(const Model::DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsRequest& request) const;
12164 
12165         /**
12166          * <p>Describes the associations between virtual interface groups and local gateway
12167          * route tables.</p><p><h3>See Also:</h3>   <a
12168          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociations">AWS
12169          * API Reference</a></p>
12170          *
12171          * Queues the request into a thread executor and triggers associated callback when operation has finished.
12172          */
12173         virtual void DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsAsync(const Model::DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsRequest& request, const DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
12174 
12175         /**
12176          * <p>Describes the specified associations between VPCs and local gateway route
12177          * tables.</p><p><h3>See Also:</h3>   <a
12178          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeLocalGatewayRouteTableVpcAssociations">AWS
12179          * API Reference</a></p>
12180          */
12181         virtual Model::DescribeLocalGatewayRouteTableVpcAssociationsOutcome DescribeLocalGatewayRouteTableVpcAssociations(const Model::DescribeLocalGatewayRouteTableVpcAssociationsRequest& request) const;
12182 
12183         /**
12184          * <p>Describes the specified associations between VPCs and local gateway route
12185          * tables.</p><p><h3>See Also:</h3>   <a
12186          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeLocalGatewayRouteTableVpcAssociations">AWS
12187          * API Reference</a></p>
12188          *
12189          * returns a future to the operation so that it can be executed in parallel to other requests.
12190          */
12191         virtual Model::DescribeLocalGatewayRouteTableVpcAssociationsOutcomeCallable DescribeLocalGatewayRouteTableVpcAssociationsCallable(const Model::DescribeLocalGatewayRouteTableVpcAssociationsRequest& request) const;
12192 
12193         /**
12194          * <p>Describes the specified associations between VPCs and local gateway route
12195          * tables.</p><p><h3>See Also:</h3>   <a
12196          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeLocalGatewayRouteTableVpcAssociations">AWS
12197          * API Reference</a></p>
12198          *
12199          * Queues the request into a thread executor and triggers associated callback when operation has finished.
12200          */
12201         virtual void DescribeLocalGatewayRouteTableVpcAssociationsAsync(const Model::DescribeLocalGatewayRouteTableVpcAssociationsRequest& request, const DescribeLocalGatewayRouteTableVpcAssociationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
12202 
12203         /**
12204          * <p>Describes one or more local gateway route tables. By default, all local
12205          * gateway route tables are described. Alternatively, you can filter the
12206          * results.</p><p><h3>See Also:</h3>   <a
12207          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeLocalGatewayRouteTables">AWS
12208          * API Reference</a></p>
12209          */
12210         virtual Model::DescribeLocalGatewayRouteTablesOutcome DescribeLocalGatewayRouteTables(const Model::DescribeLocalGatewayRouteTablesRequest& request) const;
12211 
12212         /**
12213          * <p>Describes one or more local gateway route tables. By default, all local
12214          * gateway route tables are described. Alternatively, you can filter the
12215          * results.</p><p><h3>See Also:</h3>   <a
12216          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeLocalGatewayRouteTables">AWS
12217          * API Reference</a></p>
12218          *
12219          * returns a future to the operation so that it can be executed in parallel to other requests.
12220          */
12221         virtual Model::DescribeLocalGatewayRouteTablesOutcomeCallable DescribeLocalGatewayRouteTablesCallable(const Model::DescribeLocalGatewayRouteTablesRequest& request) const;
12222 
12223         /**
12224          * <p>Describes one or more local gateway route tables. By default, all local
12225          * gateway route tables are described. Alternatively, you can filter the
12226          * results.</p><p><h3>See Also:</h3>   <a
12227          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeLocalGatewayRouteTables">AWS
12228          * API Reference</a></p>
12229          *
12230          * Queues the request into a thread executor and triggers associated callback when operation has finished.
12231          */
12232         virtual void DescribeLocalGatewayRouteTablesAsync(const Model::DescribeLocalGatewayRouteTablesRequest& request, const DescribeLocalGatewayRouteTablesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
12233 
12234         /**
12235          * <p>Describes the specified local gateway virtual interface groups.</p><p><h3>See
12236          * Also:</h3>   <a
12237          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeLocalGatewayVirtualInterfaceGroups">AWS
12238          * API Reference</a></p>
12239          */
12240         virtual Model::DescribeLocalGatewayVirtualInterfaceGroupsOutcome DescribeLocalGatewayVirtualInterfaceGroups(const Model::DescribeLocalGatewayVirtualInterfaceGroupsRequest& request) const;
12241 
12242         /**
12243          * <p>Describes the specified local gateway virtual interface groups.</p><p><h3>See
12244          * Also:</h3>   <a
12245          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeLocalGatewayVirtualInterfaceGroups">AWS
12246          * API Reference</a></p>
12247          *
12248          * returns a future to the operation so that it can be executed in parallel to other requests.
12249          */
12250         virtual Model::DescribeLocalGatewayVirtualInterfaceGroupsOutcomeCallable DescribeLocalGatewayVirtualInterfaceGroupsCallable(const Model::DescribeLocalGatewayVirtualInterfaceGroupsRequest& request) const;
12251 
12252         /**
12253          * <p>Describes the specified local gateway virtual interface groups.</p><p><h3>See
12254          * Also:</h3>   <a
12255          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeLocalGatewayVirtualInterfaceGroups">AWS
12256          * API Reference</a></p>
12257          *
12258          * Queues the request into a thread executor and triggers associated callback when operation has finished.
12259          */
12260         virtual void DescribeLocalGatewayVirtualInterfaceGroupsAsync(const Model::DescribeLocalGatewayVirtualInterfaceGroupsRequest& request, const DescribeLocalGatewayVirtualInterfaceGroupsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
12261 
12262         /**
12263          * <p>Describes the specified local gateway virtual interfaces.</p><p><h3>See
12264          * Also:</h3>   <a
12265          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeLocalGatewayVirtualInterfaces">AWS
12266          * API Reference</a></p>
12267          */
12268         virtual Model::DescribeLocalGatewayVirtualInterfacesOutcome DescribeLocalGatewayVirtualInterfaces(const Model::DescribeLocalGatewayVirtualInterfacesRequest& request) const;
12269 
12270         /**
12271          * <p>Describes the specified local gateway virtual interfaces.</p><p><h3>See
12272          * Also:</h3>   <a
12273          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeLocalGatewayVirtualInterfaces">AWS
12274          * API Reference</a></p>
12275          *
12276          * returns a future to the operation so that it can be executed in parallel to other requests.
12277          */
12278         virtual Model::DescribeLocalGatewayVirtualInterfacesOutcomeCallable DescribeLocalGatewayVirtualInterfacesCallable(const Model::DescribeLocalGatewayVirtualInterfacesRequest& request) const;
12279 
12280         /**
12281          * <p>Describes the specified local gateway virtual interfaces.</p><p><h3>See
12282          * Also:</h3>   <a
12283          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeLocalGatewayVirtualInterfaces">AWS
12284          * API Reference</a></p>
12285          *
12286          * Queues the request into a thread executor and triggers associated callback when operation has finished.
12287          */
12288         virtual void DescribeLocalGatewayVirtualInterfacesAsync(const Model::DescribeLocalGatewayVirtualInterfacesRequest& request, const DescribeLocalGatewayVirtualInterfacesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
12289 
12290         /**
12291          * <p>Describes one or more local gateways. By default, all local gateways are
12292          * described. Alternatively, you can filter the results.</p><p><h3>See Also:</h3>
12293          * <a
12294          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeLocalGateways">AWS
12295          * API Reference</a></p>
12296          */
12297         virtual Model::DescribeLocalGatewaysOutcome DescribeLocalGateways(const Model::DescribeLocalGatewaysRequest& request) const;
12298 
12299         /**
12300          * <p>Describes one or more local gateways. By default, all local gateways are
12301          * described. Alternatively, you can filter the results.</p><p><h3>See Also:</h3>
12302          * <a
12303          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeLocalGateways">AWS
12304          * API Reference</a></p>
12305          *
12306          * returns a future to the operation so that it can be executed in parallel to other requests.
12307          */
12308         virtual Model::DescribeLocalGatewaysOutcomeCallable DescribeLocalGatewaysCallable(const Model::DescribeLocalGatewaysRequest& request) const;
12309 
12310         /**
12311          * <p>Describes one or more local gateways. By default, all local gateways are
12312          * described. Alternatively, you can filter the results.</p><p><h3>See Also:</h3>
12313          * <a
12314          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeLocalGateways">AWS
12315          * API Reference</a></p>
12316          *
12317          * Queues the request into a thread executor and triggers associated callback when operation has finished.
12318          */
12319         virtual void DescribeLocalGatewaysAsync(const Model::DescribeLocalGatewaysRequest& request, const DescribeLocalGatewaysResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
12320 
12321         /**
12322          * <p>Describes your managed prefix lists and any Amazon Web Services-managed
12323          * prefix lists.</p> <p>To view the entries for your prefix list, use
12324          * <a>GetManagedPrefixListEntries</a>.</p><p><h3>See Also:</h3>   <a
12325          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeManagedPrefixLists">AWS
12326          * API Reference</a></p>
12327          */
12328         virtual Model::DescribeManagedPrefixListsOutcome DescribeManagedPrefixLists(const Model::DescribeManagedPrefixListsRequest& request) const;
12329 
12330         /**
12331          * <p>Describes your managed prefix lists and any Amazon Web Services-managed
12332          * prefix lists.</p> <p>To view the entries for your prefix list, use
12333          * <a>GetManagedPrefixListEntries</a>.</p><p><h3>See Also:</h3>   <a
12334          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeManagedPrefixLists">AWS
12335          * API Reference</a></p>
12336          *
12337          * returns a future to the operation so that it can be executed in parallel to other requests.
12338          */
12339         virtual Model::DescribeManagedPrefixListsOutcomeCallable DescribeManagedPrefixListsCallable(const Model::DescribeManagedPrefixListsRequest& request) const;
12340 
12341         /**
12342          * <p>Describes your managed prefix lists and any Amazon Web Services-managed
12343          * prefix lists.</p> <p>To view the entries for your prefix list, use
12344          * <a>GetManagedPrefixListEntries</a>.</p><p><h3>See Also:</h3>   <a
12345          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeManagedPrefixLists">AWS
12346          * API Reference</a></p>
12347          *
12348          * Queues the request into a thread executor and triggers associated callback when operation has finished.
12349          */
12350         virtual void DescribeManagedPrefixListsAsync(const Model::DescribeManagedPrefixListsRequest& request, const DescribeManagedPrefixListsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
12351 
12352         /**
12353          * <p>Describes your Elastic IP addresses that are being moved to the EC2-VPC
12354          * platform, or that are being restored to the EC2-Classic platform. This request
12355          * does not return information about any other Elastic IP addresses in your
12356          * account.</p><p><h3>See Also:</h3>   <a
12357          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeMovingAddresses">AWS
12358          * API Reference</a></p>
12359          */
12360         virtual Model::DescribeMovingAddressesOutcome DescribeMovingAddresses(const Model::DescribeMovingAddressesRequest& request) const;
12361 
12362         /**
12363          * <p>Describes your Elastic IP addresses that are being moved to the EC2-VPC
12364          * platform, or that are being restored to the EC2-Classic platform. This request
12365          * does not return information about any other Elastic IP addresses in your
12366          * account.</p><p><h3>See Also:</h3>   <a
12367          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeMovingAddresses">AWS
12368          * API Reference</a></p>
12369          *
12370          * returns a future to the operation so that it can be executed in parallel to other requests.
12371          */
12372         virtual Model::DescribeMovingAddressesOutcomeCallable DescribeMovingAddressesCallable(const Model::DescribeMovingAddressesRequest& request) const;
12373 
12374         /**
12375          * <p>Describes your Elastic IP addresses that are being moved to the EC2-VPC
12376          * platform, or that are being restored to the EC2-Classic platform. This request
12377          * does not return information about any other Elastic IP addresses in your
12378          * account.</p><p><h3>See Also:</h3>   <a
12379          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeMovingAddresses">AWS
12380          * API Reference</a></p>
12381          *
12382          * Queues the request into a thread executor and triggers associated callback when operation has finished.
12383          */
12384         virtual void DescribeMovingAddressesAsync(const Model::DescribeMovingAddressesRequest& request, const DescribeMovingAddressesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
12385 
12386         /**
12387          * <p>Describes one or more of your NAT gateways.</p><p><h3>See Also:</h3>   <a
12388          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeNatGateways">AWS
12389          * API Reference</a></p>
12390          */
12391         virtual Model::DescribeNatGatewaysOutcome DescribeNatGateways(const Model::DescribeNatGatewaysRequest& request) const;
12392 
12393         /**
12394          * <p>Describes one or more of your NAT gateways.</p><p><h3>See Also:</h3>   <a
12395          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeNatGateways">AWS
12396          * API Reference</a></p>
12397          *
12398          * returns a future to the operation so that it can be executed in parallel to other requests.
12399          */
12400         virtual Model::DescribeNatGatewaysOutcomeCallable DescribeNatGatewaysCallable(const Model::DescribeNatGatewaysRequest& request) const;
12401 
12402         /**
12403          * <p>Describes one or more of your NAT gateways.</p><p><h3>See Also:</h3>   <a
12404          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeNatGateways">AWS
12405          * API Reference</a></p>
12406          *
12407          * Queues the request into a thread executor and triggers associated callback when operation has finished.
12408          */
12409         virtual void DescribeNatGatewaysAsync(const Model::DescribeNatGatewaysRequest& request, const DescribeNatGatewaysResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
12410 
12411         /**
12412          * <p>Describes one or more of your network ACLs.</p> <p>For more information, see
12413          * <a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_ACLs.html">Network
12414          * ACLs</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.</p><p><h3>See
12415          * Also:</h3>   <a
12416          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeNetworkAcls">AWS
12417          * API Reference</a></p>
12418          */
12419         virtual Model::DescribeNetworkAclsOutcome DescribeNetworkAcls(const Model::DescribeNetworkAclsRequest& request) const;
12420 
12421         /**
12422          * <p>Describes one or more of your network ACLs.</p> <p>For more information, see
12423          * <a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_ACLs.html">Network
12424          * ACLs</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.</p><p><h3>See
12425          * Also:</h3>   <a
12426          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeNetworkAcls">AWS
12427          * API Reference</a></p>
12428          *
12429          * returns a future to the operation so that it can be executed in parallel to other requests.
12430          */
12431         virtual Model::DescribeNetworkAclsOutcomeCallable DescribeNetworkAclsCallable(const Model::DescribeNetworkAclsRequest& request) const;
12432 
12433         /**
12434          * <p>Describes one or more of your network ACLs.</p> <p>For more information, see
12435          * <a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_ACLs.html">Network
12436          * ACLs</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.</p><p><h3>See
12437          * Also:</h3>   <a
12438          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeNetworkAcls">AWS
12439          * API Reference</a></p>
12440          *
12441          * Queues the request into a thread executor and triggers associated callback when operation has finished.
12442          */
12443         virtual void DescribeNetworkAclsAsync(const Model::DescribeNetworkAclsRequest& request, const DescribeNetworkAclsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
12444 
12445         /**
12446          * <p>Describes one or more of your network insights analyses.</p><p><h3>See
12447          * Also:</h3>   <a
12448          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeNetworkInsightsAnalyses">AWS
12449          * API Reference</a></p>
12450          */
12451         virtual Model::DescribeNetworkInsightsAnalysesOutcome DescribeNetworkInsightsAnalyses(const Model::DescribeNetworkInsightsAnalysesRequest& request) const;
12452 
12453         /**
12454          * <p>Describes one or more of your network insights analyses.</p><p><h3>See
12455          * Also:</h3>   <a
12456          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeNetworkInsightsAnalyses">AWS
12457          * API Reference</a></p>
12458          *
12459          * returns a future to the operation so that it can be executed in parallel to other requests.
12460          */
12461         virtual Model::DescribeNetworkInsightsAnalysesOutcomeCallable DescribeNetworkInsightsAnalysesCallable(const Model::DescribeNetworkInsightsAnalysesRequest& request) const;
12462 
12463         /**
12464          * <p>Describes one or more of your network insights analyses.</p><p><h3>See
12465          * Also:</h3>   <a
12466          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeNetworkInsightsAnalyses">AWS
12467          * API Reference</a></p>
12468          *
12469          * Queues the request into a thread executor and triggers associated callback when operation has finished.
12470          */
12471         virtual void DescribeNetworkInsightsAnalysesAsync(const Model::DescribeNetworkInsightsAnalysesRequest& request, const DescribeNetworkInsightsAnalysesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
12472 
12473         /**
12474          * <p>Describes one or more of your paths.</p><p><h3>See Also:</h3>   <a
12475          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeNetworkInsightsPaths">AWS
12476          * API Reference</a></p>
12477          */
12478         virtual Model::DescribeNetworkInsightsPathsOutcome DescribeNetworkInsightsPaths(const Model::DescribeNetworkInsightsPathsRequest& request) const;
12479 
12480         /**
12481          * <p>Describes one or more of your paths.</p><p><h3>See Also:</h3>   <a
12482          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeNetworkInsightsPaths">AWS
12483          * API Reference</a></p>
12484          *
12485          * returns a future to the operation so that it can be executed in parallel to other requests.
12486          */
12487         virtual Model::DescribeNetworkInsightsPathsOutcomeCallable DescribeNetworkInsightsPathsCallable(const Model::DescribeNetworkInsightsPathsRequest& request) const;
12488 
12489         /**
12490          * <p>Describes one or more of your paths.</p><p><h3>See Also:</h3>   <a
12491          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeNetworkInsightsPaths">AWS
12492          * API Reference</a></p>
12493          *
12494          * Queues the request into a thread executor and triggers associated callback when operation has finished.
12495          */
12496         virtual void DescribeNetworkInsightsPathsAsync(const Model::DescribeNetworkInsightsPathsRequest& request, const DescribeNetworkInsightsPathsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
12497 
12498         /**
12499          * <p>Describes a network interface attribute. You can specify only one attribute
12500          * at a time.</p><p><h3>See Also:</h3>   <a
12501          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeNetworkInterfaceAttribute">AWS
12502          * API Reference</a></p>
12503          */
12504         virtual Model::DescribeNetworkInterfaceAttributeOutcome DescribeNetworkInterfaceAttribute(const Model::DescribeNetworkInterfaceAttributeRequest& request) const;
12505 
12506         /**
12507          * <p>Describes a network interface attribute. You can specify only one attribute
12508          * at a time.</p><p><h3>See Also:</h3>   <a
12509          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeNetworkInterfaceAttribute">AWS
12510          * API Reference</a></p>
12511          *
12512          * returns a future to the operation so that it can be executed in parallel to other requests.
12513          */
12514         virtual Model::DescribeNetworkInterfaceAttributeOutcomeCallable DescribeNetworkInterfaceAttributeCallable(const Model::DescribeNetworkInterfaceAttributeRequest& request) const;
12515 
12516         /**
12517          * <p>Describes a network interface attribute. You can specify only one attribute
12518          * at a time.</p><p><h3>See Also:</h3>   <a
12519          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeNetworkInterfaceAttribute">AWS
12520          * API Reference</a></p>
12521          *
12522          * Queues the request into a thread executor and triggers associated callback when operation has finished.
12523          */
12524         virtual void DescribeNetworkInterfaceAttributeAsync(const Model::DescribeNetworkInterfaceAttributeRequest& request, const DescribeNetworkInterfaceAttributeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
12525 
12526         /**
12527          * <p>Describes the permissions for your network interfaces. </p><p><h3>See
12528          * Also:</h3>   <a
12529          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeNetworkInterfacePermissions">AWS
12530          * API Reference</a></p>
12531          */
12532         virtual Model::DescribeNetworkInterfacePermissionsOutcome DescribeNetworkInterfacePermissions(const Model::DescribeNetworkInterfacePermissionsRequest& request) const;
12533 
12534         /**
12535          * <p>Describes the permissions for your network interfaces. </p><p><h3>See
12536          * Also:</h3>   <a
12537          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeNetworkInterfacePermissions">AWS
12538          * API Reference</a></p>
12539          *
12540          * returns a future to the operation so that it can be executed in parallel to other requests.
12541          */
12542         virtual Model::DescribeNetworkInterfacePermissionsOutcomeCallable DescribeNetworkInterfacePermissionsCallable(const Model::DescribeNetworkInterfacePermissionsRequest& request) const;
12543 
12544         /**
12545          * <p>Describes the permissions for your network interfaces. </p><p><h3>See
12546          * Also:</h3>   <a
12547          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeNetworkInterfacePermissions">AWS
12548          * API Reference</a></p>
12549          *
12550          * Queues the request into a thread executor and triggers associated callback when operation has finished.
12551          */
12552         virtual void DescribeNetworkInterfacePermissionsAsync(const Model::DescribeNetworkInterfacePermissionsRequest& request, const DescribeNetworkInterfacePermissionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
12553 
12554         /**
12555          * <p>Describes one or more of your network interfaces.</p><p><h3>See Also:</h3>
12556          * <a
12557          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeNetworkInterfaces">AWS
12558          * API Reference</a></p>
12559          */
12560         virtual Model::DescribeNetworkInterfacesOutcome DescribeNetworkInterfaces(const Model::DescribeNetworkInterfacesRequest& request) const;
12561 
12562         /**
12563          * <p>Describes one or more of your network interfaces.</p><p><h3>See Also:</h3>
12564          * <a
12565          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeNetworkInterfaces">AWS
12566          * API Reference</a></p>
12567          *
12568          * returns a future to the operation so that it can be executed in parallel to other requests.
12569          */
12570         virtual Model::DescribeNetworkInterfacesOutcomeCallable DescribeNetworkInterfacesCallable(const Model::DescribeNetworkInterfacesRequest& request) const;
12571 
12572         /**
12573          * <p>Describes one or more of your network interfaces.</p><p><h3>See Also:</h3>
12574          * <a
12575          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeNetworkInterfaces">AWS
12576          * API Reference</a></p>
12577          *
12578          * Queues the request into a thread executor and triggers associated callback when operation has finished.
12579          */
12580         virtual void DescribeNetworkInterfacesAsync(const Model::DescribeNetworkInterfacesRequest& request, const DescribeNetworkInterfacesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
12581 
12582         /**
12583          * <p>Describes the specified placement groups or all of your placement groups. For
12584          * more information, see <a
12585          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html">Placement
12586          * groups</a> in the <i>Amazon EC2 User Guide</i>.</p><p><h3>See Also:</h3>   <a
12587          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribePlacementGroups">AWS
12588          * API Reference</a></p>
12589          */
12590         virtual Model::DescribePlacementGroupsOutcome DescribePlacementGroups(const Model::DescribePlacementGroupsRequest& request) const;
12591 
12592         /**
12593          * <p>Describes the specified placement groups or all of your placement groups. For
12594          * more information, see <a
12595          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html">Placement
12596          * groups</a> in the <i>Amazon EC2 User Guide</i>.</p><p><h3>See Also:</h3>   <a
12597          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribePlacementGroups">AWS
12598          * API Reference</a></p>
12599          *
12600          * returns a future to the operation so that it can be executed in parallel to other requests.
12601          */
12602         virtual Model::DescribePlacementGroupsOutcomeCallable DescribePlacementGroupsCallable(const Model::DescribePlacementGroupsRequest& request) const;
12603 
12604         /**
12605          * <p>Describes the specified placement groups or all of your placement groups. For
12606          * more information, see <a
12607          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html">Placement
12608          * groups</a> in the <i>Amazon EC2 User Guide</i>.</p><p><h3>See Also:</h3>   <a
12609          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribePlacementGroups">AWS
12610          * API Reference</a></p>
12611          *
12612          * Queues the request into a thread executor and triggers associated callback when operation has finished.
12613          */
12614         virtual void DescribePlacementGroupsAsync(const Model::DescribePlacementGroupsRequest& request, const DescribePlacementGroupsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
12615 
12616         /**
12617          * <p>Describes available Amazon Web Services services in a prefix list format,
12618          * which includes the prefix list name and prefix list ID of the service and the IP
12619          * address range for the service.</p> <p>We recommend that you use
12620          * <a>DescribeManagedPrefixLists</a> instead.</p><p><h3>See Also:</h3>   <a
12621          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribePrefixLists">AWS
12622          * API Reference</a></p>
12623          */
12624         virtual Model::DescribePrefixListsOutcome DescribePrefixLists(const Model::DescribePrefixListsRequest& request) const;
12625 
12626         /**
12627          * <p>Describes available Amazon Web Services services in a prefix list format,
12628          * which includes the prefix list name and prefix list ID of the service and the IP
12629          * address range for the service.</p> <p>We recommend that you use
12630          * <a>DescribeManagedPrefixLists</a> instead.</p><p><h3>See Also:</h3>   <a
12631          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribePrefixLists">AWS
12632          * API Reference</a></p>
12633          *
12634          * returns a future to the operation so that it can be executed in parallel to other requests.
12635          */
12636         virtual Model::DescribePrefixListsOutcomeCallable DescribePrefixListsCallable(const Model::DescribePrefixListsRequest& request) const;
12637 
12638         /**
12639          * <p>Describes available Amazon Web Services services in a prefix list format,
12640          * which includes the prefix list name and prefix list ID of the service and the IP
12641          * address range for the service.</p> <p>We recommend that you use
12642          * <a>DescribeManagedPrefixLists</a> instead.</p><p><h3>See Also:</h3>   <a
12643          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribePrefixLists">AWS
12644          * API Reference</a></p>
12645          *
12646          * Queues the request into a thread executor and triggers associated callback when operation has finished.
12647          */
12648         virtual void DescribePrefixListsAsync(const Model::DescribePrefixListsRequest& request, const DescribePrefixListsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
12649 
12650         /**
12651          * <p>Describes the ID format settings for the root user and all IAM roles and IAM
12652          * users that have explicitly specified a longer ID (17-character ID) preference.
12653          * </p> <p>By default, all IAM roles and IAM users default to the same ID settings
12654          * as the root user, unless they explicitly override the settings. This request is
12655          * useful for identifying those IAM users and IAM roles that have overridden the
12656          * default ID settings.</p> <p>The following resource types support longer IDs:
12657          * <code>bundle</code> | <code>conversion-task</code> |
12658          * <code>customer-gateway</code> | <code>dhcp-options</code> |
12659          * <code>elastic-ip-allocation</code> | <code>elastic-ip-association</code> |
12660          * <code>export-task</code> | <code>flow-log</code> | <code>image</code> |
12661          * <code>import-task</code> | <code>instance</code> | <code>internet-gateway</code>
12662          * | <code>network-acl</code> | <code>network-acl-association</code> |
12663          * <code>network-interface</code> | <code>network-interface-attachment</code> |
12664          * <code>prefix-list</code> | <code>reservation</code> | <code>route-table</code> |
12665          * <code>route-table-association</code> | <code>security-group</code> |
12666          * <code>snapshot</code> | <code>subnet</code> |
12667          * <code>subnet-cidr-block-association</code> | <code>volume</code> |
12668          * <code>vpc</code> | <code>vpc-cidr-block-association</code> |
12669          * <code>vpc-endpoint</code> | <code>vpc-peering-connection</code> |
12670          * <code>vpn-connection</code> | <code>vpn-gateway</code>. </p><p><h3>See
12671          * Also:</h3>   <a
12672          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribePrincipalIdFormat">AWS
12673          * API Reference</a></p>
12674          */
12675         virtual Model::DescribePrincipalIdFormatOutcome DescribePrincipalIdFormat(const Model::DescribePrincipalIdFormatRequest& request) const;
12676 
12677         /**
12678          * <p>Describes the ID format settings for the root user and all IAM roles and IAM
12679          * users that have explicitly specified a longer ID (17-character ID) preference.
12680          * </p> <p>By default, all IAM roles and IAM users default to the same ID settings
12681          * as the root user, unless they explicitly override the settings. This request is
12682          * useful for identifying those IAM users and IAM roles that have overridden the
12683          * default ID settings.</p> <p>The following resource types support longer IDs:
12684          * <code>bundle</code> | <code>conversion-task</code> |
12685          * <code>customer-gateway</code> | <code>dhcp-options</code> |
12686          * <code>elastic-ip-allocation</code> | <code>elastic-ip-association</code> |
12687          * <code>export-task</code> | <code>flow-log</code> | <code>image</code> |
12688          * <code>import-task</code> | <code>instance</code> | <code>internet-gateway</code>
12689          * | <code>network-acl</code> | <code>network-acl-association</code> |
12690          * <code>network-interface</code> | <code>network-interface-attachment</code> |
12691          * <code>prefix-list</code> | <code>reservation</code> | <code>route-table</code> |
12692          * <code>route-table-association</code> | <code>security-group</code> |
12693          * <code>snapshot</code> | <code>subnet</code> |
12694          * <code>subnet-cidr-block-association</code> | <code>volume</code> |
12695          * <code>vpc</code> | <code>vpc-cidr-block-association</code> |
12696          * <code>vpc-endpoint</code> | <code>vpc-peering-connection</code> |
12697          * <code>vpn-connection</code> | <code>vpn-gateway</code>. </p><p><h3>See
12698          * Also:</h3>   <a
12699          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribePrincipalIdFormat">AWS
12700          * API Reference</a></p>
12701          *
12702          * returns a future to the operation so that it can be executed in parallel to other requests.
12703          */
12704         virtual Model::DescribePrincipalIdFormatOutcomeCallable DescribePrincipalIdFormatCallable(const Model::DescribePrincipalIdFormatRequest& request) const;
12705 
12706         /**
12707          * <p>Describes the ID format settings for the root user and all IAM roles and IAM
12708          * users that have explicitly specified a longer ID (17-character ID) preference.
12709          * </p> <p>By default, all IAM roles and IAM users default to the same ID settings
12710          * as the root user, unless they explicitly override the settings. This request is
12711          * useful for identifying those IAM users and IAM roles that have overridden the
12712          * default ID settings.</p> <p>The following resource types support longer IDs:
12713          * <code>bundle</code> | <code>conversion-task</code> |
12714          * <code>customer-gateway</code> | <code>dhcp-options</code> |
12715          * <code>elastic-ip-allocation</code> | <code>elastic-ip-association</code> |
12716          * <code>export-task</code> | <code>flow-log</code> | <code>image</code> |
12717          * <code>import-task</code> | <code>instance</code> | <code>internet-gateway</code>
12718          * | <code>network-acl</code> | <code>network-acl-association</code> |
12719          * <code>network-interface</code> | <code>network-interface-attachment</code> |
12720          * <code>prefix-list</code> | <code>reservation</code> | <code>route-table</code> |
12721          * <code>route-table-association</code> | <code>security-group</code> |
12722          * <code>snapshot</code> | <code>subnet</code> |
12723          * <code>subnet-cidr-block-association</code> | <code>volume</code> |
12724          * <code>vpc</code> | <code>vpc-cidr-block-association</code> |
12725          * <code>vpc-endpoint</code> | <code>vpc-peering-connection</code> |
12726          * <code>vpn-connection</code> | <code>vpn-gateway</code>. </p><p><h3>See
12727          * Also:</h3>   <a
12728          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribePrincipalIdFormat">AWS
12729          * API Reference</a></p>
12730          *
12731          * Queues the request into a thread executor and triggers associated callback when operation has finished.
12732          */
12733         virtual void DescribePrincipalIdFormatAsync(const Model::DescribePrincipalIdFormatRequest& request, const DescribePrincipalIdFormatResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
12734 
12735         /**
12736          * <p>Describes the specified IPv4 address pools.</p><p><h3>See Also:</h3>   <a
12737          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribePublicIpv4Pools">AWS
12738          * API Reference</a></p>
12739          */
12740         virtual Model::DescribePublicIpv4PoolsOutcome DescribePublicIpv4Pools(const Model::DescribePublicIpv4PoolsRequest& request) const;
12741 
12742         /**
12743          * <p>Describes the specified IPv4 address pools.</p><p><h3>See Also:</h3>   <a
12744          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribePublicIpv4Pools">AWS
12745          * API Reference</a></p>
12746          *
12747          * returns a future to the operation so that it can be executed in parallel to other requests.
12748          */
12749         virtual Model::DescribePublicIpv4PoolsOutcomeCallable DescribePublicIpv4PoolsCallable(const Model::DescribePublicIpv4PoolsRequest& request) const;
12750 
12751         /**
12752          * <p>Describes the specified IPv4 address pools.</p><p><h3>See Also:</h3>   <a
12753          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribePublicIpv4Pools">AWS
12754          * API Reference</a></p>
12755          *
12756          * Queues the request into a thread executor and triggers associated callback when operation has finished.
12757          */
12758         virtual void DescribePublicIpv4PoolsAsync(const Model::DescribePublicIpv4PoolsRequest& request, const DescribePublicIpv4PoolsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
12759 
12760         /**
12761          * <p>Describes the Regions that are enabled for your account, or all Regions.</p>
12762          * <p>For a list of the Regions supported by Amazon EC2, see <a
12763          * href="https://docs.aws.amazon.com/general/latest/gr/ec2-service.html"> Amazon
12764          * Elastic Compute Cloud endpoints and quotas</a>.</p> <p>For information about
12765          * enabling and disabling Regions for your account, see <a
12766          * href="https://docs.aws.amazon.com/general/latest/gr/rande-manage.html">Managing
12767          * Amazon Web Services Regions</a> in the <i>Amazon Web Services General
12768          * Reference</i>.</p><p><h3>See Also:</h3>   <a
12769          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeRegions">AWS
12770          * API Reference</a></p>
12771          */
12772         virtual Model::DescribeRegionsOutcome DescribeRegions(const Model::DescribeRegionsRequest& request) const;
12773 
12774         /**
12775          * <p>Describes the Regions that are enabled for your account, or all Regions.</p>
12776          * <p>For a list of the Regions supported by Amazon EC2, see <a
12777          * href="https://docs.aws.amazon.com/general/latest/gr/ec2-service.html"> Amazon
12778          * Elastic Compute Cloud endpoints and quotas</a>.</p> <p>For information about
12779          * enabling and disabling Regions for your account, see <a
12780          * href="https://docs.aws.amazon.com/general/latest/gr/rande-manage.html">Managing
12781          * Amazon Web Services Regions</a> in the <i>Amazon Web Services General
12782          * Reference</i>.</p><p><h3>See Also:</h3>   <a
12783          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeRegions">AWS
12784          * API Reference</a></p>
12785          *
12786          * returns a future to the operation so that it can be executed in parallel to other requests.
12787          */
12788         virtual Model::DescribeRegionsOutcomeCallable DescribeRegionsCallable(const Model::DescribeRegionsRequest& request) const;
12789 
12790         /**
12791          * <p>Describes the Regions that are enabled for your account, or all Regions.</p>
12792          * <p>For a list of the Regions supported by Amazon EC2, see <a
12793          * href="https://docs.aws.amazon.com/general/latest/gr/ec2-service.html"> Amazon
12794          * Elastic Compute Cloud endpoints and quotas</a>.</p> <p>For information about
12795          * enabling and disabling Regions for your account, see <a
12796          * href="https://docs.aws.amazon.com/general/latest/gr/rande-manage.html">Managing
12797          * Amazon Web Services Regions</a> in the <i>Amazon Web Services General
12798          * Reference</i>.</p><p><h3>See Also:</h3>   <a
12799          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeRegions">AWS
12800          * API Reference</a></p>
12801          *
12802          * Queues the request into a thread executor and triggers associated callback when operation has finished.
12803          */
12804         virtual void DescribeRegionsAsync(const Model::DescribeRegionsRequest& request, const DescribeRegionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
12805 
12806         /**
12807          * <p>Describes a root volume replacement task. For more information, see <a
12808          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-restoring-volume.html#replace-root">Replace
12809          * a root volume</a> in the <i>Amazon Elastic Compute Cloud User
12810          * Guide</i>.</p><p><h3>See Also:</h3>   <a
12811          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeReplaceRootVolumeTasks">AWS
12812          * API Reference</a></p>
12813          */
12814         virtual Model::DescribeReplaceRootVolumeTasksOutcome DescribeReplaceRootVolumeTasks(const Model::DescribeReplaceRootVolumeTasksRequest& request) const;
12815 
12816         /**
12817          * <p>Describes a root volume replacement task. For more information, see <a
12818          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-restoring-volume.html#replace-root">Replace
12819          * a root volume</a> in the <i>Amazon Elastic Compute Cloud User
12820          * Guide</i>.</p><p><h3>See Also:</h3>   <a
12821          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeReplaceRootVolumeTasks">AWS
12822          * API Reference</a></p>
12823          *
12824          * returns a future to the operation so that it can be executed in parallel to other requests.
12825          */
12826         virtual Model::DescribeReplaceRootVolumeTasksOutcomeCallable DescribeReplaceRootVolumeTasksCallable(const Model::DescribeReplaceRootVolumeTasksRequest& request) const;
12827 
12828         /**
12829          * <p>Describes a root volume replacement task. For more information, see <a
12830          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-restoring-volume.html#replace-root">Replace
12831          * a root volume</a> in the <i>Amazon Elastic Compute Cloud User
12832          * Guide</i>.</p><p><h3>See Also:</h3>   <a
12833          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeReplaceRootVolumeTasks">AWS
12834          * API Reference</a></p>
12835          *
12836          * Queues the request into a thread executor and triggers associated callback when operation has finished.
12837          */
12838         virtual void DescribeReplaceRootVolumeTasksAsync(const Model::DescribeReplaceRootVolumeTasksRequest& request, const DescribeReplaceRootVolumeTasksResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
12839 
12840         /**
12841          * <p>Describes one or more of the Reserved Instances that you purchased.</p>
12842          * <p>For more information about Reserved Instances, see <a
12843          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts-on-demand-reserved-instances.html">Reserved
12844          * Instances</a> in the <i>Amazon EC2 User Guide</i>.</p><p><h3>See Also:</h3>   <a
12845          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeReservedInstances">AWS
12846          * API Reference</a></p>
12847          */
12848         virtual Model::DescribeReservedInstancesOutcome DescribeReservedInstances(const Model::DescribeReservedInstancesRequest& request) const;
12849 
12850         /**
12851          * <p>Describes one or more of the Reserved Instances that you purchased.</p>
12852          * <p>For more information about Reserved Instances, see <a
12853          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts-on-demand-reserved-instances.html">Reserved
12854          * Instances</a> in the <i>Amazon EC2 User Guide</i>.</p><p><h3>See Also:</h3>   <a
12855          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeReservedInstances">AWS
12856          * API Reference</a></p>
12857          *
12858          * returns a future to the operation so that it can be executed in parallel to other requests.
12859          */
12860         virtual Model::DescribeReservedInstancesOutcomeCallable DescribeReservedInstancesCallable(const Model::DescribeReservedInstancesRequest& request) const;
12861 
12862         /**
12863          * <p>Describes one or more of the Reserved Instances that you purchased.</p>
12864          * <p>For more information about Reserved Instances, see <a
12865          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts-on-demand-reserved-instances.html">Reserved
12866          * Instances</a> in the <i>Amazon EC2 User Guide</i>.</p><p><h3>See Also:</h3>   <a
12867          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeReservedInstances">AWS
12868          * API Reference</a></p>
12869          *
12870          * Queues the request into a thread executor and triggers associated callback when operation has finished.
12871          */
12872         virtual void DescribeReservedInstancesAsync(const Model::DescribeReservedInstancesRequest& request, const DescribeReservedInstancesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
12873 
12874         /**
12875          * <p>Describes your account's Reserved Instance listings in the Reserved Instance
12876          * Marketplace.</p> <p>The Reserved Instance Marketplace matches sellers who want
12877          * to resell Reserved Instance capacity that they no longer need with buyers who
12878          * want to purchase additional capacity. Reserved Instances bought and sold through
12879          * the Reserved Instance Marketplace work like any other Reserved Instances.</p>
12880          * <p>As a seller, you choose to list some or all of your Reserved Instances, and
12881          * you specify the upfront price to receive for them. Your Reserved Instances are
12882          * then listed in the Reserved Instance Marketplace and are available for
12883          * purchase.</p> <p>As a buyer, you specify the configuration of the Reserved
12884          * Instance to purchase, and the Marketplace matches what you're searching for with
12885          * what's available. The Marketplace first sells the lowest priced Reserved
12886          * Instances to you, and continues to sell available Reserved Instance listings to
12887          * you until your demand is met. You are charged based on the total price of all of
12888          * the listings that you purchase.</p> <p>For more information, see <a
12889          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-market-general.html">Reserved
12890          * Instance Marketplace</a> in the <i>Amazon EC2 User Guide</i>.</p><p><h3>See
12891          * Also:</h3>   <a
12892          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeReservedInstancesListings">AWS
12893          * API Reference</a></p>
12894          */
12895         virtual Model::DescribeReservedInstancesListingsOutcome DescribeReservedInstancesListings(const Model::DescribeReservedInstancesListingsRequest& request) const;
12896 
12897         /**
12898          * <p>Describes your account's Reserved Instance listings in the Reserved Instance
12899          * Marketplace.</p> <p>The Reserved Instance Marketplace matches sellers who want
12900          * to resell Reserved Instance capacity that they no longer need with buyers who
12901          * want to purchase additional capacity. Reserved Instances bought and sold through
12902          * the Reserved Instance Marketplace work like any other Reserved Instances.</p>
12903          * <p>As a seller, you choose to list some or all of your Reserved Instances, and
12904          * you specify the upfront price to receive for them. Your Reserved Instances are
12905          * then listed in the Reserved Instance Marketplace and are available for
12906          * purchase.</p> <p>As a buyer, you specify the configuration of the Reserved
12907          * Instance to purchase, and the Marketplace matches what you're searching for with
12908          * what's available. The Marketplace first sells the lowest priced Reserved
12909          * Instances to you, and continues to sell available Reserved Instance listings to
12910          * you until your demand is met. You are charged based on the total price of all of
12911          * the listings that you purchase.</p> <p>For more information, see <a
12912          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-market-general.html">Reserved
12913          * Instance Marketplace</a> in the <i>Amazon EC2 User Guide</i>.</p><p><h3>See
12914          * Also:</h3>   <a
12915          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeReservedInstancesListings">AWS
12916          * API Reference</a></p>
12917          *
12918          * returns a future to the operation so that it can be executed in parallel to other requests.
12919          */
12920         virtual Model::DescribeReservedInstancesListingsOutcomeCallable DescribeReservedInstancesListingsCallable(const Model::DescribeReservedInstancesListingsRequest& request) const;
12921 
12922         /**
12923          * <p>Describes your account's Reserved Instance listings in the Reserved Instance
12924          * Marketplace.</p> <p>The Reserved Instance Marketplace matches sellers who want
12925          * to resell Reserved Instance capacity that they no longer need with buyers who
12926          * want to purchase additional capacity. Reserved Instances bought and sold through
12927          * the Reserved Instance Marketplace work like any other Reserved Instances.</p>
12928          * <p>As a seller, you choose to list some or all of your Reserved Instances, and
12929          * you specify the upfront price to receive for them. Your Reserved Instances are
12930          * then listed in the Reserved Instance Marketplace and are available for
12931          * purchase.</p> <p>As a buyer, you specify the configuration of the Reserved
12932          * Instance to purchase, and the Marketplace matches what you're searching for with
12933          * what's available. The Marketplace first sells the lowest priced Reserved
12934          * Instances to you, and continues to sell available Reserved Instance listings to
12935          * you until your demand is met. You are charged based on the total price of all of
12936          * the listings that you purchase.</p> <p>For more information, see <a
12937          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-market-general.html">Reserved
12938          * Instance Marketplace</a> in the <i>Amazon EC2 User Guide</i>.</p><p><h3>See
12939          * Also:</h3>   <a
12940          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeReservedInstancesListings">AWS
12941          * API Reference</a></p>
12942          *
12943          * Queues the request into a thread executor and triggers associated callback when operation has finished.
12944          */
12945         virtual void DescribeReservedInstancesListingsAsync(const Model::DescribeReservedInstancesListingsRequest& request, const DescribeReservedInstancesListingsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
12946 
12947         /**
12948          * <p>Describes the modifications made to your Reserved Instances. If no parameter
12949          * is specified, information about all your Reserved Instances modification
12950          * requests is returned. If a modification ID is specified, only information about
12951          * the specific modification is returned.</p> <p>For more information, see <a
12952          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-modifying.html">Modifying
12953          * Reserved Instances</a> in the <i>Amazon EC2 User Guide</i>.</p><p><h3>See
12954          * Also:</h3>   <a
12955          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeReservedInstancesModifications">AWS
12956          * API Reference</a></p>
12957          */
12958         virtual Model::DescribeReservedInstancesModificationsOutcome DescribeReservedInstancesModifications(const Model::DescribeReservedInstancesModificationsRequest& request) const;
12959 
12960         /**
12961          * <p>Describes the modifications made to your Reserved Instances. If no parameter
12962          * is specified, information about all your Reserved Instances modification
12963          * requests is returned. If a modification ID is specified, only information about
12964          * the specific modification is returned.</p> <p>For more information, see <a
12965          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-modifying.html">Modifying
12966          * Reserved Instances</a> in the <i>Amazon EC2 User Guide</i>.</p><p><h3>See
12967          * Also:</h3>   <a
12968          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeReservedInstancesModifications">AWS
12969          * API Reference</a></p>
12970          *
12971          * returns a future to the operation so that it can be executed in parallel to other requests.
12972          */
12973         virtual Model::DescribeReservedInstancesModificationsOutcomeCallable DescribeReservedInstancesModificationsCallable(const Model::DescribeReservedInstancesModificationsRequest& request) const;
12974 
12975         /**
12976          * <p>Describes the modifications made to your Reserved Instances. If no parameter
12977          * is specified, information about all your Reserved Instances modification
12978          * requests is returned. If a modification ID is specified, only information about
12979          * the specific modification is returned.</p> <p>For more information, see <a
12980          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-modifying.html">Modifying
12981          * Reserved Instances</a> in the <i>Amazon EC2 User Guide</i>.</p><p><h3>See
12982          * Also:</h3>   <a
12983          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeReservedInstancesModifications">AWS
12984          * API Reference</a></p>
12985          *
12986          * Queues the request into a thread executor and triggers associated callback when operation has finished.
12987          */
12988         virtual void DescribeReservedInstancesModificationsAsync(const Model::DescribeReservedInstancesModificationsRequest& request, const DescribeReservedInstancesModificationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
12989 
12990         /**
12991          * <p>Describes Reserved Instance offerings that are available for purchase. With
12992          * Reserved Instances, you purchase the right to launch instances for a period of
12993          * time. During that time period, you do not receive insufficient capacity errors,
12994          * and you pay a lower usage rate than the rate charged for On-Demand instances for
12995          * the actual time used.</p> <p>If you have listed your own Reserved Instances for
12996          * sale in the Reserved Instance Marketplace, they will be excluded from these
12997          * results. This is to ensure that you do not purchase your own Reserved
12998          * Instances.</p> <p>For more information, see <a
12999          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-market-general.html">Reserved
13000          * Instance Marketplace</a> in the <i>Amazon EC2 User Guide</i>.</p><p><h3>See
13001          * Also:</h3>   <a
13002          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeReservedInstancesOfferings">AWS
13003          * API Reference</a></p>
13004          */
13005         virtual Model::DescribeReservedInstancesOfferingsOutcome DescribeReservedInstancesOfferings(const Model::DescribeReservedInstancesOfferingsRequest& request) const;
13006 
13007         /**
13008          * <p>Describes Reserved Instance offerings that are available for purchase. With
13009          * Reserved Instances, you purchase the right to launch instances for a period of
13010          * time. During that time period, you do not receive insufficient capacity errors,
13011          * and you pay a lower usage rate than the rate charged for On-Demand instances for
13012          * the actual time used.</p> <p>If you have listed your own Reserved Instances for
13013          * sale in the Reserved Instance Marketplace, they will be excluded from these
13014          * results. This is to ensure that you do not purchase your own Reserved
13015          * Instances.</p> <p>For more information, see <a
13016          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-market-general.html">Reserved
13017          * Instance Marketplace</a> in the <i>Amazon EC2 User Guide</i>.</p><p><h3>See
13018          * Also:</h3>   <a
13019          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeReservedInstancesOfferings">AWS
13020          * API Reference</a></p>
13021          *
13022          * returns a future to the operation so that it can be executed in parallel to other requests.
13023          */
13024         virtual Model::DescribeReservedInstancesOfferingsOutcomeCallable DescribeReservedInstancesOfferingsCallable(const Model::DescribeReservedInstancesOfferingsRequest& request) const;
13025 
13026         /**
13027          * <p>Describes Reserved Instance offerings that are available for purchase. With
13028          * Reserved Instances, you purchase the right to launch instances for a period of
13029          * time. During that time period, you do not receive insufficient capacity errors,
13030          * and you pay a lower usage rate than the rate charged for On-Demand instances for
13031          * the actual time used.</p> <p>If you have listed your own Reserved Instances for
13032          * sale in the Reserved Instance Marketplace, they will be excluded from these
13033          * results. This is to ensure that you do not purchase your own Reserved
13034          * Instances.</p> <p>For more information, see <a
13035          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-market-general.html">Reserved
13036          * Instance Marketplace</a> in the <i>Amazon EC2 User Guide</i>.</p><p><h3>See
13037          * Also:</h3>   <a
13038          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeReservedInstancesOfferings">AWS
13039          * API Reference</a></p>
13040          *
13041          * Queues the request into a thread executor and triggers associated callback when operation has finished.
13042          */
13043         virtual void DescribeReservedInstancesOfferingsAsync(const Model::DescribeReservedInstancesOfferingsRequest& request, const DescribeReservedInstancesOfferingsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
13044 
13045         /**
13046          * <p>Describes one or more of your route tables.</p> <p>Each subnet in your VPC
13047          * must be associated with a route table. If a subnet is not explicitly associated
13048          * with any route table, it is implicitly associated with the main route table.
13049          * This command does not return the subnet ID for implicit associations.</p> <p>For
13050          * more information, see <a
13051          * href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html">Route
13052          * tables</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.</p><p><h3>See
13053          * Also:</h3>   <a
13054          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeRouteTables">AWS
13055          * API Reference</a></p>
13056          */
13057         virtual Model::DescribeRouteTablesOutcome DescribeRouteTables(const Model::DescribeRouteTablesRequest& request) const;
13058 
13059         /**
13060          * <p>Describes one or more of your route tables.</p> <p>Each subnet in your VPC
13061          * must be associated with a route table. If a subnet is not explicitly associated
13062          * with any route table, it is implicitly associated with the main route table.
13063          * This command does not return the subnet ID for implicit associations.</p> <p>For
13064          * more information, see <a
13065          * href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html">Route
13066          * tables</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.</p><p><h3>See
13067          * Also:</h3>   <a
13068          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeRouteTables">AWS
13069          * API Reference</a></p>
13070          *
13071          * returns a future to the operation so that it can be executed in parallel to other requests.
13072          */
13073         virtual Model::DescribeRouteTablesOutcomeCallable DescribeRouteTablesCallable(const Model::DescribeRouteTablesRequest& request) const;
13074 
13075         /**
13076          * <p>Describes one or more of your route tables.</p> <p>Each subnet in your VPC
13077          * must be associated with a route table. If a subnet is not explicitly associated
13078          * with any route table, it is implicitly associated with the main route table.
13079          * This command does not return the subnet ID for implicit associations.</p> <p>For
13080          * more information, see <a
13081          * href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html">Route
13082          * tables</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.</p><p><h3>See
13083          * Also:</h3>   <a
13084          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeRouteTables">AWS
13085          * API Reference</a></p>
13086          *
13087          * Queues the request into a thread executor and triggers associated callback when operation has finished.
13088          */
13089         virtual void DescribeRouteTablesAsync(const Model::DescribeRouteTablesRequest& request, const DescribeRouteTablesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
13090 
13091         /**
13092          * <p>Finds available schedules that meet the specified criteria.</p> <p>You can
13093          * search for an available schedule no more than 3 months in advance. You must meet
13094          * the minimum required duration of 1,200 hours per year. For example, the minimum
13095          * daily schedule is 4 hours, the minimum weekly schedule is 24 hours, and the
13096          * minimum monthly schedule is 100 hours.</p> <p>After you find a schedule that
13097          * meets your needs, call <a>PurchaseScheduledInstances</a> to purchase Scheduled
13098          * Instances with that schedule.</p><p><h3>See Also:</h3>   <a
13099          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeScheduledInstanceAvailability">AWS
13100          * API Reference</a></p>
13101          */
13102         virtual Model::DescribeScheduledInstanceAvailabilityOutcome DescribeScheduledInstanceAvailability(const Model::DescribeScheduledInstanceAvailabilityRequest& request) const;
13103 
13104         /**
13105          * <p>Finds available schedules that meet the specified criteria.</p> <p>You can
13106          * search for an available schedule no more than 3 months in advance. You must meet
13107          * the minimum required duration of 1,200 hours per year. For example, the minimum
13108          * daily schedule is 4 hours, the minimum weekly schedule is 24 hours, and the
13109          * minimum monthly schedule is 100 hours.</p> <p>After you find a schedule that
13110          * meets your needs, call <a>PurchaseScheduledInstances</a> to purchase Scheduled
13111          * Instances with that schedule.</p><p><h3>See Also:</h3>   <a
13112          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeScheduledInstanceAvailability">AWS
13113          * API Reference</a></p>
13114          *
13115          * returns a future to the operation so that it can be executed in parallel to other requests.
13116          */
13117         virtual Model::DescribeScheduledInstanceAvailabilityOutcomeCallable DescribeScheduledInstanceAvailabilityCallable(const Model::DescribeScheduledInstanceAvailabilityRequest& request) const;
13118 
13119         /**
13120          * <p>Finds available schedules that meet the specified criteria.</p> <p>You can
13121          * search for an available schedule no more than 3 months in advance. You must meet
13122          * the minimum required duration of 1,200 hours per year. For example, the minimum
13123          * daily schedule is 4 hours, the minimum weekly schedule is 24 hours, and the
13124          * minimum monthly schedule is 100 hours.</p> <p>After you find a schedule that
13125          * meets your needs, call <a>PurchaseScheduledInstances</a> to purchase Scheduled
13126          * Instances with that schedule.</p><p><h3>See Also:</h3>   <a
13127          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeScheduledInstanceAvailability">AWS
13128          * API Reference</a></p>
13129          *
13130          * Queues the request into a thread executor and triggers associated callback when operation has finished.
13131          */
13132         virtual void DescribeScheduledInstanceAvailabilityAsync(const Model::DescribeScheduledInstanceAvailabilityRequest& request, const DescribeScheduledInstanceAvailabilityResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
13133 
13134         /**
13135          * <p>Describes the specified Scheduled Instances or all your Scheduled
13136          * Instances.</p><p><h3>See Also:</h3>   <a
13137          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeScheduledInstances">AWS
13138          * API Reference</a></p>
13139          */
13140         virtual Model::DescribeScheduledInstancesOutcome DescribeScheduledInstances(const Model::DescribeScheduledInstancesRequest& request) const;
13141 
13142         /**
13143          * <p>Describes the specified Scheduled Instances or all your Scheduled
13144          * Instances.</p><p><h3>See Also:</h3>   <a
13145          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeScheduledInstances">AWS
13146          * API Reference</a></p>
13147          *
13148          * returns a future to the operation so that it can be executed in parallel to other requests.
13149          */
13150         virtual Model::DescribeScheduledInstancesOutcomeCallable DescribeScheduledInstancesCallable(const Model::DescribeScheduledInstancesRequest& request) const;
13151 
13152         /**
13153          * <p>Describes the specified Scheduled Instances or all your Scheduled
13154          * Instances.</p><p><h3>See Also:</h3>   <a
13155          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeScheduledInstances">AWS
13156          * API Reference</a></p>
13157          *
13158          * Queues the request into a thread executor and triggers associated callback when operation has finished.
13159          */
13160         virtual void DescribeScheduledInstancesAsync(const Model::DescribeScheduledInstancesRequest& request, const DescribeScheduledInstancesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
13161 
13162         /**
13163          * <p>[VPC only] Describes the VPCs on the other side of a VPC peering connection
13164          * that are referencing the security groups you've specified in this
13165          * request.</p><p><h3>See Also:</h3>   <a
13166          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeSecurityGroupReferences">AWS
13167          * API Reference</a></p>
13168          */
13169         virtual Model::DescribeSecurityGroupReferencesOutcome DescribeSecurityGroupReferences(const Model::DescribeSecurityGroupReferencesRequest& request) const;
13170 
13171         /**
13172          * <p>[VPC only] Describes the VPCs on the other side of a VPC peering connection
13173          * that are referencing the security groups you've specified in this
13174          * request.</p><p><h3>See Also:</h3>   <a
13175          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeSecurityGroupReferences">AWS
13176          * API Reference</a></p>
13177          *
13178          * returns a future to the operation so that it can be executed in parallel to other requests.
13179          */
13180         virtual Model::DescribeSecurityGroupReferencesOutcomeCallable DescribeSecurityGroupReferencesCallable(const Model::DescribeSecurityGroupReferencesRequest& request) const;
13181 
13182         /**
13183          * <p>[VPC only] Describes the VPCs on the other side of a VPC peering connection
13184          * that are referencing the security groups you've specified in this
13185          * request.</p><p><h3>See Also:</h3>   <a
13186          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeSecurityGroupReferences">AWS
13187          * API Reference</a></p>
13188          *
13189          * Queues the request into a thread executor and triggers associated callback when operation has finished.
13190          */
13191         virtual void DescribeSecurityGroupReferencesAsync(const Model::DescribeSecurityGroupReferencesRequest& request, const DescribeSecurityGroupReferencesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
13192 
13193         /**
13194          * <p>Describes one or more of your security group rules.</p><p><h3>See Also:</h3>
13195          * <a
13196          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeSecurityGroupRules">AWS
13197          * API Reference</a></p>
13198          */
13199         virtual Model::DescribeSecurityGroupRulesOutcome DescribeSecurityGroupRules(const Model::DescribeSecurityGroupRulesRequest& request) const;
13200 
13201         /**
13202          * <p>Describes one or more of your security group rules.</p><p><h3>See Also:</h3>
13203          * <a
13204          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeSecurityGroupRules">AWS
13205          * API Reference</a></p>
13206          *
13207          * returns a future to the operation so that it can be executed in parallel to other requests.
13208          */
13209         virtual Model::DescribeSecurityGroupRulesOutcomeCallable DescribeSecurityGroupRulesCallable(const Model::DescribeSecurityGroupRulesRequest& request) const;
13210 
13211         /**
13212          * <p>Describes one or more of your security group rules.</p><p><h3>See Also:</h3>
13213          * <a
13214          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeSecurityGroupRules">AWS
13215          * API Reference</a></p>
13216          *
13217          * Queues the request into a thread executor and triggers associated callback when operation has finished.
13218          */
13219         virtual void DescribeSecurityGroupRulesAsync(const Model::DescribeSecurityGroupRulesRequest& request, const DescribeSecurityGroupRulesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
13220 
13221         /**
13222          * <p>Describes the specified security groups or all of your security groups.</p>
13223          * <p>A security group is for use with instances either in the EC2-Classic platform
13224          * or in a specific VPC. For more information, see <a
13225          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html">Amazon
13226          * EC2 security groups</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>
13227          * and <a
13228          * href="https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_SecurityGroups.html">Security
13229          * groups for your VPC</a> in the <i>Amazon Virtual Private Cloud User
13230          * Guide</i>.</p><p><h3>See Also:</h3>   <a
13231          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeSecurityGroups">AWS
13232          * API Reference</a></p>
13233          */
13234         virtual Model::DescribeSecurityGroupsOutcome DescribeSecurityGroups(const Model::DescribeSecurityGroupsRequest& request) const;
13235 
13236         /**
13237          * <p>Describes the specified security groups or all of your security groups.</p>
13238          * <p>A security group is for use with instances either in the EC2-Classic platform
13239          * or in a specific VPC. For more information, see <a
13240          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html">Amazon
13241          * EC2 security groups</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>
13242          * and <a
13243          * href="https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_SecurityGroups.html">Security
13244          * groups for your VPC</a> in the <i>Amazon Virtual Private Cloud User
13245          * Guide</i>.</p><p><h3>See Also:</h3>   <a
13246          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeSecurityGroups">AWS
13247          * API Reference</a></p>
13248          *
13249          * returns a future to the operation so that it can be executed in parallel to other requests.
13250          */
13251         virtual Model::DescribeSecurityGroupsOutcomeCallable DescribeSecurityGroupsCallable(const Model::DescribeSecurityGroupsRequest& request) const;
13252 
13253         /**
13254          * <p>Describes the specified security groups or all of your security groups.</p>
13255          * <p>A security group is for use with instances either in the EC2-Classic platform
13256          * or in a specific VPC. For more information, see <a
13257          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html">Amazon
13258          * EC2 security groups</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>
13259          * and <a
13260          * href="https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_SecurityGroups.html">Security
13261          * groups for your VPC</a> in the <i>Amazon Virtual Private Cloud User
13262          * Guide</i>.</p><p><h3>See Also:</h3>   <a
13263          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeSecurityGroups">AWS
13264          * API Reference</a></p>
13265          *
13266          * Queues the request into a thread executor and triggers associated callback when operation has finished.
13267          */
13268         virtual void DescribeSecurityGroupsAsync(const Model::DescribeSecurityGroupsRequest& request, const DescribeSecurityGroupsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
13269 
13270         /**
13271          * <p>Describes the specified attribute of the specified snapshot. You can specify
13272          * only one attribute at a time.</p> <p>For more information about EBS snapshots,
13273          * see <a
13274          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSSnapshots.html">Amazon
13275          * EBS snapshots</a> in the <i>Amazon Elastic Compute Cloud User
13276          * Guide</i>.</p><p><h3>See Also:</h3>   <a
13277          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeSnapshotAttribute">AWS
13278          * API Reference</a></p>
13279          */
13280         virtual Model::DescribeSnapshotAttributeOutcome DescribeSnapshotAttribute(const Model::DescribeSnapshotAttributeRequest& request) const;
13281 
13282         /**
13283          * <p>Describes the specified attribute of the specified snapshot. You can specify
13284          * only one attribute at a time.</p> <p>For more information about EBS snapshots,
13285          * see <a
13286          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSSnapshots.html">Amazon
13287          * EBS snapshots</a> in the <i>Amazon Elastic Compute Cloud User
13288          * Guide</i>.</p><p><h3>See Also:</h3>   <a
13289          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeSnapshotAttribute">AWS
13290          * API Reference</a></p>
13291          *
13292          * returns a future to the operation so that it can be executed in parallel to other requests.
13293          */
13294         virtual Model::DescribeSnapshotAttributeOutcomeCallable DescribeSnapshotAttributeCallable(const Model::DescribeSnapshotAttributeRequest& request) const;
13295 
13296         /**
13297          * <p>Describes the specified attribute of the specified snapshot. You can specify
13298          * only one attribute at a time.</p> <p>For more information about EBS snapshots,
13299          * see <a
13300          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSSnapshots.html">Amazon
13301          * EBS snapshots</a> in the <i>Amazon Elastic Compute Cloud User
13302          * Guide</i>.</p><p><h3>See Also:</h3>   <a
13303          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeSnapshotAttribute">AWS
13304          * API Reference</a></p>
13305          *
13306          * Queues the request into a thread executor and triggers associated callback when operation has finished.
13307          */
13308         virtual void DescribeSnapshotAttributeAsync(const Model::DescribeSnapshotAttributeRequest& request, const DescribeSnapshotAttributeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
13309 
13310         /**
13311          * <p>Describes the specified EBS snapshots available to you or all of the EBS
13312          * snapshots available to you.</p> <p>The snapshots available to you include public
13313          * snapshots, private snapshots that you own, and private snapshots owned by other
13314          * Amazon Web Services accounts for which you have explicit create volume
13315          * permissions.</p> <p>The create volume permissions fall into the following
13316          * categories:</p> <ul> <li> <p> <i>public</i>: The owner of the snapshot granted
13317          * create volume permissions for the snapshot to the <code>all</code> group. All
13318          * Amazon Web Services accounts have create volume permissions for these
13319          * snapshots.</p> </li> <li> <p> <i>explicit</i>: The owner of the snapshot granted
13320          * create volume permissions to a specific Amazon Web Services account.</p> </li>
13321          * <li> <p> <i>implicit</i>: An Amazon Web Services account has implicit create
13322          * volume permissions for all snapshots it owns.</p> </li> </ul> <p>The list of
13323          * snapshots returned can be filtered by specifying snapshot IDs, snapshot owners,
13324          * or Amazon Web Services accounts with create volume permissions. If no options
13325          * are specified, Amazon EC2 returns all snapshots for which you have create volume
13326          * permissions.</p> <p>If you specify one or more snapshot IDs, only snapshots that
13327          * have the specified IDs are returned. If you specify an invalid snapshot ID, an
13328          * error is returned. If you specify a snapshot ID for which you do not have
13329          * access, it is not included in the returned results.</p> <p>If you specify one or
13330          * more snapshot owners using the <code>OwnerIds</code> option, only snapshots from
13331          * the specified owners and for which you have access are returned. The results can
13332          * include the Amazon Web Services account IDs of the specified owners,
13333          * <code>amazon</code> for snapshots owned by Amazon, or <code>self</code> for
13334          * snapshots that you own.</p> <p>If you specify a list of restorable users, only
13335          * snapshots with create snapshot permissions for those users are returned. You can
13336          * specify Amazon Web Services account IDs (if you own the snapshots),
13337          * <code>self</code> for snapshots for which you own or have explicit permissions,
13338          * or <code>all</code> for public snapshots.</p> <p>If you are describing a long
13339          * list of snapshots, we recommend that you paginate the output to make the list
13340          * more manageable. The <code>MaxResults</code> parameter sets the maximum number
13341          * of results returned in a single page. If the list of results exceeds your
13342          * <code>MaxResults</code> value, then that number of results is returned along
13343          * with a <code>NextToken</code> value that can be passed to a subsequent
13344          * <code>DescribeSnapshots</code> request to retrieve the remaining results.</p>
13345          * <p>To get the state of fast snapshot restores for a snapshot, use
13346          * <a>DescribeFastSnapshotRestores</a>.</p> <p>For more information about EBS
13347          * snapshots, see <a
13348          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSSnapshots.html">Amazon
13349          * EBS snapshots</a> in the <i>Amazon Elastic Compute Cloud User
13350          * Guide</i>.</p><p><h3>See Also:</h3>   <a
13351          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeSnapshots">AWS
13352          * API Reference</a></p>
13353          */
13354         virtual Model::DescribeSnapshotsOutcome DescribeSnapshots(const Model::DescribeSnapshotsRequest& request) const;
13355 
13356         /**
13357          * <p>Describes the specified EBS snapshots available to you or all of the EBS
13358          * snapshots available to you.</p> <p>The snapshots available to you include public
13359          * snapshots, private snapshots that you own, and private snapshots owned by other
13360          * Amazon Web Services accounts for which you have explicit create volume
13361          * permissions.</p> <p>The create volume permissions fall into the following
13362          * categories:</p> <ul> <li> <p> <i>public</i>: The owner of the snapshot granted
13363          * create volume permissions for the snapshot to the <code>all</code> group. All
13364          * Amazon Web Services accounts have create volume permissions for these
13365          * snapshots.</p> </li> <li> <p> <i>explicit</i>: The owner of the snapshot granted
13366          * create volume permissions to a specific Amazon Web Services account.</p> </li>
13367          * <li> <p> <i>implicit</i>: An Amazon Web Services account has implicit create
13368          * volume permissions for all snapshots it owns.</p> </li> </ul> <p>The list of
13369          * snapshots returned can be filtered by specifying snapshot IDs, snapshot owners,
13370          * or Amazon Web Services accounts with create volume permissions. If no options
13371          * are specified, Amazon EC2 returns all snapshots for which you have create volume
13372          * permissions.</p> <p>If you specify one or more snapshot IDs, only snapshots that
13373          * have the specified IDs are returned. If you specify an invalid snapshot ID, an
13374          * error is returned. If you specify a snapshot ID for which you do not have
13375          * access, it is not included in the returned results.</p> <p>If you specify one or
13376          * more snapshot owners using the <code>OwnerIds</code> option, only snapshots from
13377          * the specified owners and for which you have access are returned. The results can
13378          * include the Amazon Web Services account IDs of the specified owners,
13379          * <code>amazon</code> for snapshots owned by Amazon, or <code>self</code> for
13380          * snapshots that you own.</p> <p>If you specify a list of restorable users, only
13381          * snapshots with create snapshot permissions for those users are returned. You can
13382          * specify Amazon Web Services account IDs (if you own the snapshots),
13383          * <code>self</code> for snapshots for which you own or have explicit permissions,
13384          * or <code>all</code> for public snapshots.</p> <p>If you are describing a long
13385          * list of snapshots, we recommend that you paginate the output to make the list
13386          * more manageable. The <code>MaxResults</code> parameter sets the maximum number
13387          * of results returned in a single page. If the list of results exceeds your
13388          * <code>MaxResults</code> value, then that number of results is returned along
13389          * with a <code>NextToken</code> value that can be passed to a subsequent
13390          * <code>DescribeSnapshots</code> request to retrieve the remaining results.</p>
13391          * <p>To get the state of fast snapshot restores for a snapshot, use
13392          * <a>DescribeFastSnapshotRestores</a>.</p> <p>For more information about EBS
13393          * snapshots, see <a
13394          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSSnapshots.html">Amazon
13395          * EBS snapshots</a> in the <i>Amazon Elastic Compute Cloud User
13396          * Guide</i>.</p><p><h3>See Also:</h3>   <a
13397          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeSnapshots">AWS
13398          * API Reference</a></p>
13399          *
13400          * returns a future to the operation so that it can be executed in parallel to other requests.
13401          */
13402         virtual Model::DescribeSnapshotsOutcomeCallable DescribeSnapshotsCallable(const Model::DescribeSnapshotsRequest& request) const;
13403 
13404         /**
13405          * <p>Describes the specified EBS snapshots available to you or all of the EBS
13406          * snapshots available to you.</p> <p>The snapshots available to you include public
13407          * snapshots, private snapshots that you own, and private snapshots owned by other
13408          * Amazon Web Services accounts for which you have explicit create volume
13409          * permissions.</p> <p>The create volume permissions fall into the following
13410          * categories:</p> <ul> <li> <p> <i>public</i>: The owner of the snapshot granted
13411          * create volume permissions for the snapshot to the <code>all</code> group. All
13412          * Amazon Web Services accounts have create volume permissions for these
13413          * snapshots.</p> </li> <li> <p> <i>explicit</i>: The owner of the snapshot granted
13414          * create volume permissions to a specific Amazon Web Services account.</p> </li>
13415          * <li> <p> <i>implicit</i>: An Amazon Web Services account has implicit create
13416          * volume permissions for all snapshots it owns.</p> </li> </ul> <p>The list of
13417          * snapshots returned can be filtered by specifying snapshot IDs, snapshot owners,
13418          * or Amazon Web Services accounts with create volume permissions. If no options
13419          * are specified, Amazon EC2 returns all snapshots for which you have create volume
13420          * permissions.</p> <p>If you specify one or more snapshot IDs, only snapshots that
13421          * have the specified IDs are returned. If you specify an invalid snapshot ID, an
13422          * error is returned. If you specify a snapshot ID for which you do not have
13423          * access, it is not included in the returned results.</p> <p>If you specify one or
13424          * more snapshot owners using the <code>OwnerIds</code> option, only snapshots from
13425          * the specified owners and for which you have access are returned. The results can
13426          * include the Amazon Web Services account IDs of the specified owners,
13427          * <code>amazon</code> for snapshots owned by Amazon, or <code>self</code> for
13428          * snapshots that you own.</p> <p>If you specify a list of restorable users, only
13429          * snapshots with create snapshot permissions for those users are returned. You can
13430          * specify Amazon Web Services account IDs (if you own the snapshots),
13431          * <code>self</code> for snapshots for which you own or have explicit permissions,
13432          * or <code>all</code> for public snapshots.</p> <p>If you are describing a long
13433          * list of snapshots, we recommend that you paginate the output to make the list
13434          * more manageable. The <code>MaxResults</code> parameter sets the maximum number
13435          * of results returned in a single page. If the list of results exceeds your
13436          * <code>MaxResults</code> value, then that number of results is returned along
13437          * with a <code>NextToken</code> value that can be passed to a subsequent
13438          * <code>DescribeSnapshots</code> request to retrieve the remaining results.</p>
13439          * <p>To get the state of fast snapshot restores for a snapshot, use
13440          * <a>DescribeFastSnapshotRestores</a>.</p> <p>For more information about EBS
13441          * snapshots, see <a
13442          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSSnapshots.html">Amazon
13443          * EBS snapshots</a> in the <i>Amazon Elastic Compute Cloud User
13444          * Guide</i>.</p><p><h3>See Also:</h3>   <a
13445          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeSnapshots">AWS
13446          * API Reference</a></p>
13447          *
13448          * Queues the request into a thread executor and triggers associated callback when operation has finished.
13449          */
13450         virtual void DescribeSnapshotsAsync(const Model::DescribeSnapshotsRequest& request, const DescribeSnapshotsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
13451 
13452         /**
13453          * <p>Describes the data feed for Spot Instances. For more information, see <a
13454          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-data-feeds.html">Spot
13455          * Instance data feed</a> in the <i>Amazon EC2 User Guide for Linux
13456          * Instances</i>.</p><p><h3>See Also:</h3>   <a
13457          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeSpotDatafeedSubscription">AWS
13458          * API Reference</a></p>
13459          */
13460         virtual Model::DescribeSpotDatafeedSubscriptionOutcome DescribeSpotDatafeedSubscription(const Model::DescribeSpotDatafeedSubscriptionRequest& request) const;
13461 
13462         /**
13463          * <p>Describes the data feed for Spot Instances. For more information, see <a
13464          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-data-feeds.html">Spot
13465          * Instance data feed</a> in the <i>Amazon EC2 User Guide for Linux
13466          * Instances</i>.</p><p><h3>See Also:</h3>   <a
13467          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeSpotDatafeedSubscription">AWS
13468          * API Reference</a></p>
13469          *
13470          * returns a future to the operation so that it can be executed in parallel to other requests.
13471          */
13472         virtual Model::DescribeSpotDatafeedSubscriptionOutcomeCallable DescribeSpotDatafeedSubscriptionCallable(const Model::DescribeSpotDatafeedSubscriptionRequest& request) const;
13473 
13474         /**
13475          * <p>Describes the data feed for Spot Instances. For more information, see <a
13476          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-data-feeds.html">Spot
13477          * Instance data feed</a> in the <i>Amazon EC2 User Guide for Linux
13478          * Instances</i>.</p><p><h3>See Also:</h3>   <a
13479          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeSpotDatafeedSubscription">AWS
13480          * API Reference</a></p>
13481          *
13482          * Queues the request into a thread executor and triggers associated callback when operation has finished.
13483          */
13484         virtual void DescribeSpotDatafeedSubscriptionAsync(const Model::DescribeSpotDatafeedSubscriptionRequest& request, const DescribeSpotDatafeedSubscriptionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
13485 
13486         /**
13487          * <p>Describes the running instances for the specified Spot Fleet.</p><p><h3>See
13488          * Also:</h3>   <a
13489          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeSpotFleetInstances">AWS
13490          * API Reference</a></p>
13491          */
13492         virtual Model::DescribeSpotFleetInstancesOutcome DescribeSpotFleetInstances(const Model::DescribeSpotFleetInstancesRequest& request) const;
13493 
13494         /**
13495          * <p>Describes the running instances for the specified Spot Fleet.</p><p><h3>See
13496          * Also:</h3>   <a
13497          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeSpotFleetInstances">AWS
13498          * API Reference</a></p>
13499          *
13500          * returns a future to the operation so that it can be executed in parallel to other requests.
13501          */
13502         virtual Model::DescribeSpotFleetInstancesOutcomeCallable DescribeSpotFleetInstancesCallable(const Model::DescribeSpotFleetInstancesRequest& request) const;
13503 
13504         /**
13505          * <p>Describes the running instances for the specified Spot Fleet.</p><p><h3>See
13506          * Also:</h3>   <a
13507          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeSpotFleetInstances">AWS
13508          * API Reference</a></p>
13509          *
13510          * Queues the request into a thread executor and triggers associated callback when operation has finished.
13511          */
13512         virtual void DescribeSpotFleetInstancesAsync(const Model::DescribeSpotFleetInstancesRequest& request, const DescribeSpotFleetInstancesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
13513 
13514         /**
13515          * <p>Describes the events for the specified Spot Fleet request during the
13516          * specified time.</p> <p>Spot Fleet events are delayed by up to 30 seconds before
13517          * they can be described. This ensures that you can query by the last evaluated
13518          * time and not miss a recorded event. Spot Fleet events are available for 48
13519          * hours.</p> <p>For more information, see <a
13520          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/fleet-monitor.html">Monitor
13521          * fleet events using Amazon EventBridge</a> in the <i>Amazon EC2 User Guide for
13522          * Linux Instances</i>.</p><p><h3>See Also:</h3>   <a
13523          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeSpotFleetRequestHistory">AWS
13524          * API Reference</a></p>
13525          */
13526         virtual Model::DescribeSpotFleetRequestHistoryOutcome DescribeSpotFleetRequestHistory(const Model::DescribeSpotFleetRequestHistoryRequest& request) const;
13527 
13528         /**
13529          * <p>Describes the events for the specified Spot Fleet request during the
13530          * specified time.</p> <p>Spot Fleet events are delayed by up to 30 seconds before
13531          * they can be described. This ensures that you can query by the last evaluated
13532          * time and not miss a recorded event. Spot Fleet events are available for 48
13533          * hours.</p> <p>For more information, see <a
13534          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/fleet-monitor.html">Monitor
13535          * fleet events using Amazon EventBridge</a> in the <i>Amazon EC2 User Guide for
13536          * Linux Instances</i>.</p><p><h3>See Also:</h3>   <a
13537          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeSpotFleetRequestHistory">AWS
13538          * API Reference</a></p>
13539          *
13540          * returns a future to the operation so that it can be executed in parallel to other requests.
13541          */
13542         virtual Model::DescribeSpotFleetRequestHistoryOutcomeCallable DescribeSpotFleetRequestHistoryCallable(const Model::DescribeSpotFleetRequestHistoryRequest& request) const;
13543 
13544         /**
13545          * <p>Describes the events for the specified Spot Fleet request during the
13546          * specified time.</p> <p>Spot Fleet events are delayed by up to 30 seconds before
13547          * they can be described. This ensures that you can query by the last evaluated
13548          * time and not miss a recorded event. Spot Fleet events are available for 48
13549          * hours.</p> <p>For more information, see <a
13550          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/fleet-monitor.html">Monitor
13551          * fleet events using Amazon EventBridge</a> in the <i>Amazon EC2 User Guide for
13552          * Linux Instances</i>.</p><p><h3>See Also:</h3>   <a
13553          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeSpotFleetRequestHistory">AWS
13554          * API Reference</a></p>
13555          *
13556          * Queues the request into a thread executor and triggers associated callback when operation has finished.
13557          */
13558         virtual void DescribeSpotFleetRequestHistoryAsync(const Model::DescribeSpotFleetRequestHistoryRequest& request, const DescribeSpotFleetRequestHistoryResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
13559 
13560         /**
13561          * <p>Describes your Spot Fleet requests.</p> <p>Spot Fleet requests are deleted 48
13562          * hours after they are canceled and their instances are terminated.</p><p><h3>See
13563          * Also:</h3>   <a
13564          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeSpotFleetRequests">AWS
13565          * API Reference</a></p>
13566          */
13567         virtual Model::DescribeSpotFleetRequestsOutcome DescribeSpotFleetRequests(const Model::DescribeSpotFleetRequestsRequest& request) const;
13568 
13569         /**
13570          * <p>Describes your Spot Fleet requests.</p> <p>Spot Fleet requests are deleted 48
13571          * hours after they are canceled and their instances are terminated.</p><p><h3>See
13572          * Also:</h3>   <a
13573          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeSpotFleetRequests">AWS
13574          * API Reference</a></p>
13575          *
13576          * returns a future to the operation so that it can be executed in parallel to other requests.
13577          */
13578         virtual Model::DescribeSpotFleetRequestsOutcomeCallable DescribeSpotFleetRequestsCallable(const Model::DescribeSpotFleetRequestsRequest& request) const;
13579 
13580         /**
13581          * <p>Describes your Spot Fleet requests.</p> <p>Spot Fleet requests are deleted 48
13582          * hours after they are canceled and their instances are terminated.</p><p><h3>See
13583          * Also:</h3>   <a
13584          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeSpotFleetRequests">AWS
13585          * API Reference</a></p>
13586          *
13587          * Queues the request into a thread executor and triggers associated callback when operation has finished.
13588          */
13589         virtual void DescribeSpotFleetRequestsAsync(const Model::DescribeSpotFleetRequestsRequest& request, const DescribeSpotFleetRequestsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
13590 
13591         /**
13592          * <p>Describes the specified Spot Instance requests.</p> <p>You can use
13593          * <code>DescribeSpotInstanceRequests</code> to find a running Spot Instance by
13594          * examining the response. If the status of the Spot Instance is
13595          * <code>fulfilled</code>, the instance ID appears in the response and contains the
13596          * identifier of the instance. Alternatively, you can use <a
13597          * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstances">DescribeInstances</a>
13598          * with a filter to look for instances where the instance lifecycle is
13599          * <code>spot</code>.</p> <p>We recommend that you set <code>MaxResults</code> to a
13600          * value between 5 and 1000 to limit the number of results returned. This paginates
13601          * the output, which makes the list more manageable and returns the results faster.
13602          * If the list of results exceeds your <code>MaxResults</code> value, then that
13603          * number of results is returned along with a <code>NextToken</code> value that can
13604          * be passed to a subsequent <code>DescribeSpotInstanceRequests</code> request to
13605          * retrieve the remaining results.</p> <p>Spot Instance requests are deleted four
13606          * hours after they are canceled and their instances are terminated.</p><p><h3>See
13607          * Also:</h3>   <a
13608          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeSpotInstanceRequests">AWS
13609          * API Reference</a></p>
13610          */
13611         virtual Model::DescribeSpotInstanceRequestsOutcome DescribeSpotInstanceRequests(const Model::DescribeSpotInstanceRequestsRequest& request) const;
13612 
13613         /**
13614          * <p>Describes the specified Spot Instance requests.</p> <p>You can use
13615          * <code>DescribeSpotInstanceRequests</code> to find a running Spot Instance by
13616          * examining the response. If the status of the Spot Instance is
13617          * <code>fulfilled</code>, the instance ID appears in the response and contains the
13618          * identifier of the instance. Alternatively, you can use <a
13619          * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstances">DescribeInstances</a>
13620          * with a filter to look for instances where the instance lifecycle is
13621          * <code>spot</code>.</p> <p>We recommend that you set <code>MaxResults</code> to a
13622          * value between 5 and 1000 to limit the number of results returned. This paginates
13623          * the output, which makes the list more manageable and returns the results faster.
13624          * If the list of results exceeds your <code>MaxResults</code> value, then that
13625          * number of results is returned along with a <code>NextToken</code> value that can
13626          * be passed to a subsequent <code>DescribeSpotInstanceRequests</code> request to
13627          * retrieve the remaining results.</p> <p>Spot Instance requests are deleted four
13628          * hours after they are canceled and their instances are terminated.</p><p><h3>See
13629          * Also:</h3>   <a
13630          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeSpotInstanceRequests">AWS
13631          * API Reference</a></p>
13632          *
13633          * returns a future to the operation so that it can be executed in parallel to other requests.
13634          */
13635         virtual Model::DescribeSpotInstanceRequestsOutcomeCallable DescribeSpotInstanceRequestsCallable(const Model::DescribeSpotInstanceRequestsRequest& request) const;
13636 
13637         /**
13638          * <p>Describes the specified Spot Instance requests.</p> <p>You can use
13639          * <code>DescribeSpotInstanceRequests</code> to find a running Spot Instance by
13640          * examining the response. If the status of the Spot Instance is
13641          * <code>fulfilled</code>, the instance ID appears in the response and contains the
13642          * identifier of the instance. Alternatively, you can use <a
13643          * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstances">DescribeInstances</a>
13644          * with a filter to look for instances where the instance lifecycle is
13645          * <code>spot</code>.</p> <p>We recommend that you set <code>MaxResults</code> to a
13646          * value between 5 and 1000 to limit the number of results returned. This paginates
13647          * the output, which makes the list more manageable and returns the results faster.
13648          * If the list of results exceeds your <code>MaxResults</code> value, then that
13649          * number of results is returned along with a <code>NextToken</code> value that can
13650          * be passed to a subsequent <code>DescribeSpotInstanceRequests</code> request to
13651          * retrieve the remaining results.</p> <p>Spot Instance requests are deleted four
13652          * hours after they are canceled and their instances are terminated.</p><p><h3>See
13653          * Also:</h3>   <a
13654          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeSpotInstanceRequests">AWS
13655          * API Reference</a></p>
13656          *
13657          * Queues the request into a thread executor and triggers associated callback when operation has finished.
13658          */
13659         virtual void DescribeSpotInstanceRequestsAsync(const Model::DescribeSpotInstanceRequestsRequest& request, const DescribeSpotInstanceRequestsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
13660 
13661         /**
13662          * <p>Describes the Spot price history. For more information, see <a
13663          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-spot-instances-history.html">Spot
13664          * Instance pricing history</a> in the <i>Amazon EC2 User Guide for Linux
13665          * Instances</i>.</p> <p>When you specify a start and end time, the operation
13666          * returns the prices of the instance types within that time range. It also returns
13667          * the last price change before the start time, which is the effective price as of
13668          * the start time.</p><p><h3>See Also:</h3>   <a
13669          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeSpotPriceHistory">AWS
13670          * API Reference</a></p>
13671          */
13672         virtual Model::DescribeSpotPriceHistoryOutcome DescribeSpotPriceHistory(const Model::DescribeSpotPriceHistoryRequest& request) const;
13673 
13674         /**
13675          * <p>Describes the Spot price history. For more information, see <a
13676          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-spot-instances-history.html">Spot
13677          * Instance pricing history</a> in the <i>Amazon EC2 User Guide for Linux
13678          * Instances</i>.</p> <p>When you specify a start and end time, the operation
13679          * returns the prices of the instance types within that time range. It also returns
13680          * the last price change before the start time, which is the effective price as of
13681          * the start time.</p><p><h3>See Also:</h3>   <a
13682          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeSpotPriceHistory">AWS
13683          * API Reference</a></p>
13684          *
13685          * returns a future to the operation so that it can be executed in parallel to other requests.
13686          */
13687         virtual Model::DescribeSpotPriceHistoryOutcomeCallable DescribeSpotPriceHistoryCallable(const Model::DescribeSpotPriceHistoryRequest& request) const;
13688 
13689         /**
13690          * <p>Describes the Spot price history. For more information, see <a
13691          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-spot-instances-history.html">Spot
13692          * Instance pricing history</a> in the <i>Amazon EC2 User Guide for Linux
13693          * Instances</i>.</p> <p>When you specify a start and end time, the operation
13694          * returns the prices of the instance types within that time range. It also returns
13695          * the last price change before the start time, which is the effective price as of
13696          * the start time.</p><p><h3>See Also:</h3>   <a
13697          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeSpotPriceHistory">AWS
13698          * API Reference</a></p>
13699          *
13700          * Queues the request into a thread executor and triggers associated callback when operation has finished.
13701          */
13702         virtual void DescribeSpotPriceHistoryAsync(const Model::DescribeSpotPriceHistoryRequest& request, const DescribeSpotPriceHistoryResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
13703 
13704         /**
13705          * <p>[VPC only] Describes the stale security group rules for security groups in a
13706          * specified VPC. Rules are stale when they reference a deleted security group in a
13707          * peer VPC, or a security group in a peer VPC for which the VPC peering connection
13708          * has been deleted.</p><p><h3>See Also:</h3>   <a
13709          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeStaleSecurityGroups">AWS
13710          * API Reference</a></p>
13711          */
13712         virtual Model::DescribeStaleSecurityGroupsOutcome DescribeStaleSecurityGroups(const Model::DescribeStaleSecurityGroupsRequest& request) const;
13713 
13714         /**
13715          * <p>[VPC only] Describes the stale security group rules for security groups in a
13716          * specified VPC. Rules are stale when they reference a deleted security group in a
13717          * peer VPC, or a security group in a peer VPC for which the VPC peering connection
13718          * has been deleted.</p><p><h3>See Also:</h3>   <a
13719          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeStaleSecurityGroups">AWS
13720          * API Reference</a></p>
13721          *
13722          * returns a future to the operation so that it can be executed in parallel to other requests.
13723          */
13724         virtual Model::DescribeStaleSecurityGroupsOutcomeCallable DescribeStaleSecurityGroupsCallable(const Model::DescribeStaleSecurityGroupsRequest& request) const;
13725 
13726         /**
13727          * <p>[VPC only] Describes the stale security group rules for security groups in a
13728          * specified VPC. Rules are stale when they reference a deleted security group in a
13729          * peer VPC, or a security group in a peer VPC for which the VPC peering connection
13730          * has been deleted.</p><p><h3>See Also:</h3>   <a
13731          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeStaleSecurityGroups">AWS
13732          * API Reference</a></p>
13733          *
13734          * Queues the request into a thread executor and triggers associated callback when operation has finished.
13735          */
13736         virtual void DescribeStaleSecurityGroupsAsync(const Model::DescribeStaleSecurityGroupsRequest& request, const DescribeStaleSecurityGroupsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
13737 
13738         /**
13739          * <p>Describes the progress of the AMI store tasks. You can describe the store
13740          * tasks for specified AMIs. If you don't specify the AMIs, you get a paginated
13741          * list of store tasks from the last 31 days.</p> <p>For each AMI task, the
13742          * response indicates if the task is <code>InProgress</code>,
13743          * <code>Completed</code>, or <code>Failed</code>. For tasks
13744          * <code>InProgress</code>, the response shows the estimated progress as a
13745          * percentage.</p> <p>Tasks are listed in reverse chronological order. Currently,
13746          * only tasks from the past 31 days can be viewed.</p> <p>To use this API, you must
13747          * have the required permissions. For more information, see <a
13748          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-store-restore.html#ami-s3-permissions">Permissions
13749          * for storing and restoring AMIs using Amazon S3</a> in the <i>Amazon Elastic
13750          * Compute Cloud User Guide</i>.</p> <p>For more information, see <a
13751          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-store-restore.html">Store
13752          * and restore an AMI using Amazon S3</a> in the <i>Amazon Elastic Compute Cloud
13753          * User Guide</i>.</p><p><h3>See Also:</h3>   <a
13754          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeStoreImageTasks">AWS
13755          * API Reference</a></p>
13756          */
13757         virtual Model::DescribeStoreImageTasksOutcome DescribeStoreImageTasks(const Model::DescribeStoreImageTasksRequest& request) const;
13758 
13759         /**
13760          * <p>Describes the progress of the AMI store tasks. You can describe the store
13761          * tasks for specified AMIs. If you don't specify the AMIs, you get a paginated
13762          * list of store tasks from the last 31 days.</p> <p>For each AMI task, the
13763          * response indicates if the task is <code>InProgress</code>,
13764          * <code>Completed</code>, or <code>Failed</code>. For tasks
13765          * <code>InProgress</code>, the response shows the estimated progress as a
13766          * percentage.</p> <p>Tasks are listed in reverse chronological order. Currently,
13767          * only tasks from the past 31 days can be viewed.</p> <p>To use this API, you must
13768          * have the required permissions. For more information, see <a
13769          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-store-restore.html#ami-s3-permissions">Permissions
13770          * for storing and restoring AMIs using Amazon S3</a> in the <i>Amazon Elastic
13771          * Compute Cloud User Guide</i>.</p> <p>For more information, see <a
13772          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-store-restore.html">Store
13773          * and restore an AMI using Amazon S3</a> in the <i>Amazon Elastic Compute Cloud
13774          * User Guide</i>.</p><p><h3>See Also:</h3>   <a
13775          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeStoreImageTasks">AWS
13776          * API Reference</a></p>
13777          *
13778          * returns a future to the operation so that it can be executed in parallel to other requests.
13779          */
13780         virtual Model::DescribeStoreImageTasksOutcomeCallable DescribeStoreImageTasksCallable(const Model::DescribeStoreImageTasksRequest& request) const;
13781 
13782         /**
13783          * <p>Describes the progress of the AMI store tasks. You can describe the store
13784          * tasks for specified AMIs. If you don't specify the AMIs, you get a paginated
13785          * list of store tasks from the last 31 days.</p> <p>For each AMI task, the
13786          * response indicates if the task is <code>InProgress</code>,
13787          * <code>Completed</code>, or <code>Failed</code>. For tasks
13788          * <code>InProgress</code>, the response shows the estimated progress as a
13789          * percentage.</p> <p>Tasks are listed in reverse chronological order. Currently,
13790          * only tasks from the past 31 days can be viewed.</p> <p>To use this API, you must
13791          * have the required permissions. For more information, see <a
13792          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-store-restore.html#ami-s3-permissions">Permissions
13793          * for storing and restoring AMIs using Amazon S3</a> in the <i>Amazon Elastic
13794          * Compute Cloud User Guide</i>.</p> <p>For more information, see <a
13795          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-store-restore.html">Store
13796          * and restore an AMI using Amazon S3</a> in the <i>Amazon Elastic Compute Cloud
13797          * User Guide</i>.</p><p><h3>See Also:</h3>   <a
13798          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeStoreImageTasks">AWS
13799          * API Reference</a></p>
13800          *
13801          * Queues the request into a thread executor and triggers associated callback when operation has finished.
13802          */
13803         virtual void DescribeStoreImageTasksAsync(const Model::DescribeStoreImageTasksRequest& request, const DescribeStoreImageTasksResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
13804 
13805         /**
13806          * <p>Describes one or more of your subnets.</p> <p>For more information, see <a
13807          * href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html">Your
13808          * VPC and subnets</a> in the <i>Amazon Virtual Private Cloud User
13809          * Guide</i>.</p><p><h3>See Also:</h3>   <a
13810          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeSubnets">AWS
13811          * API Reference</a></p>
13812          */
13813         virtual Model::DescribeSubnetsOutcome DescribeSubnets(const Model::DescribeSubnetsRequest& request) const;
13814 
13815         /**
13816          * <p>Describes one or more of your subnets.</p> <p>For more information, see <a
13817          * href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html">Your
13818          * VPC and subnets</a> in the <i>Amazon Virtual Private Cloud User
13819          * Guide</i>.</p><p><h3>See Also:</h3>   <a
13820          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeSubnets">AWS
13821          * API Reference</a></p>
13822          *
13823          * returns a future to the operation so that it can be executed in parallel to other requests.
13824          */
13825         virtual Model::DescribeSubnetsOutcomeCallable DescribeSubnetsCallable(const Model::DescribeSubnetsRequest& request) const;
13826 
13827         /**
13828          * <p>Describes one or more of your subnets.</p> <p>For more information, see <a
13829          * href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html">Your
13830          * VPC and subnets</a> in the <i>Amazon Virtual Private Cloud User
13831          * Guide</i>.</p><p><h3>See Also:</h3>   <a
13832          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeSubnets">AWS
13833          * API Reference</a></p>
13834          *
13835          * Queues the request into a thread executor and triggers associated callback when operation has finished.
13836          */
13837         virtual void DescribeSubnetsAsync(const Model::DescribeSubnetsRequest& request, const DescribeSubnetsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
13838 
13839         /**
13840          * <p>Describes the specified tags for your EC2 resources.</p> <p>For more
13841          * information about tags, see <a
13842          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html">Tagging
13843          * Your Resources</a> in the <i>Amazon Elastic Compute Cloud User
13844          * Guide</i>.</p><p><h3>See Also:</h3>   <a
13845          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeTags">AWS
13846          * API Reference</a></p>
13847          */
13848         virtual Model::DescribeTagsOutcome DescribeTags(const Model::DescribeTagsRequest& request) const;
13849 
13850         /**
13851          * <p>Describes the specified tags for your EC2 resources.</p> <p>For more
13852          * information about tags, see <a
13853          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html">Tagging
13854          * Your Resources</a> in the <i>Amazon Elastic Compute Cloud User
13855          * Guide</i>.</p><p><h3>See Also:</h3>   <a
13856          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeTags">AWS
13857          * API Reference</a></p>
13858          *
13859          * returns a future to the operation so that it can be executed in parallel to other requests.
13860          */
13861         virtual Model::DescribeTagsOutcomeCallable DescribeTagsCallable(const Model::DescribeTagsRequest& request) const;
13862 
13863         /**
13864          * <p>Describes the specified tags for your EC2 resources.</p> <p>For more
13865          * information about tags, see <a
13866          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html">Tagging
13867          * Your Resources</a> in the <i>Amazon Elastic Compute Cloud User
13868          * Guide</i>.</p><p><h3>See Also:</h3>   <a
13869          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeTags">AWS
13870          * API Reference</a></p>
13871          *
13872          * Queues the request into a thread executor and triggers associated callback when operation has finished.
13873          */
13874         virtual void DescribeTagsAsync(const Model::DescribeTagsRequest& request, const DescribeTagsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
13875 
13876         /**
13877          * <p>Describes one or more Traffic Mirror filters.</p><p><h3>See Also:</h3>   <a
13878          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeTrafficMirrorFilters">AWS
13879          * API Reference</a></p>
13880          */
13881         virtual Model::DescribeTrafficMirrorFiltersOutcome DescribeTrafficMirrorFilters(const Model::DescribeTrafficMirrorFiltersRequest& request) const;
13882 
13883         /**
13884          * <p>Describes one or more Traffic Mirror filters.</p><p><h3>See Also:</h3>   <a
13885          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeTrafficMirrorFilters">AWS
13886          * API Reference</a></p>
13887          *
13888          * returns a future to the operation so that it can be executed in parallel to other requests.
13889          */
13890         virtual Model::DescribeTrafficMirrorFiltersOutcomeCallable DescribeTrafficMirrorFiltersCallable(const Model::DescribeTrafficMirrorFiltersRequest& request) const;
13891 
13892         /**
13893          * <p>Describes one or more Traffic Mirror filters.</p><p><h3>See Also:</h3>   <a
13894          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeTrafficMirrorFilters">AWS
13895          * API Reference</a></p>
13896          *
13897          * Queues the request into a thread executor and triggers associated callback when operation has finished.
13898          */
13899         virtual void DescribeTrafficMirrorFiltersAsync(const Model::DescribeTrafficMirrorFiltersRequest& request, const DescribeTrafficMirrorFiltersResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
13900 
13901         /**
13902          * <p>Describes one or more Traffic Mirror sessions. By default, all Traffic Mirror
13903          * sessions are described. Alternatively, you can filter the results.</p><p><h3>See
13904          * Also:</h3>   <a
13905          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeTrafficMirrorSessions">AWS
13906          * API Reference</a></p>
13907          */
13908         virtual Model::DescribeTrafficMirrorSessionsOutcome DescribeTrafficMirrorSessions(const Model::DescribeTrafficMirrorSessionsRequest& request) const;
13909 
13910         /**
13911          * <p>Describes one or more Traffic Mirror sessions. By default, all Traffic Mirror
13912          * sessions are described. Alternatively, you can filter the results.</p><p><h3>See
13913          * Also:</h3>   <a
13914          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeTrafficMirrorSessions">AWS
13915          * API Reference</a></p>
13916          *
13917          * returns a future to the operation so that it can be executed in parallel to other requests.
13918          */
13919         virtual Model::DescribeTrafficMirrorSessionsOutcomeCallable DescribeTrafficMirrorSessionsCallable(const Model::DescribeTrafficMirrorSessionsRequest& request) const;
13920 
13921         /**
13922          * <p>Describes one or more Traffic Mirror sessions. By default, all Traffic Mirror
13923          * sessions are described. Alternatively, you can filter the results.</p><p><h3>See
13924          * Also:</h3>   <a
13925          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeTrafficMirrorSessions">AWS
13926          * API Reference</a></p>
13927          *
13928          * Queues the request into a thread executor and triggers associated callback when operation has finished.
13929          */
13930         virtual void DescribeTrafficMirrorSessionsAsync(const Model::DescribeTrafficMirrorSessionsRequest& request, const DescribeTrafficMirrorSessionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
13931 
13932         /**
13933          * <p>Information about one or more Traffic Mirror targets.</p><p><h3>See
13934          * Also:</h3>   <a
13935          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeTrafficMirrorTargets">AWS
13936          * API Reference</a></p>
13937          */
13938         virtual Model::DescribeTrafficMirrorTargetsOutcome DescribeTrafficMirrorTargets(const Model::DescribeTrafficMirrorTargetsRequest& request) const;
13939 
13940         /**
13941          * <p>Information about one or more Traffic Mirror targets.</p><p><h3>See
13942          * Also:</h3>   <a
13943          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeTrafficMirrorTargets">AWS
13944          * API Reference</a></p>
13945          *
13946          * returns a future to the operation so that it can be executed in parallel to other requests.
13947          */
13948         virtual Model::DescribeTrafficMirrorTargetsOutcomeCallable DescribeTrafficMirrorTargetsCallable(const Model::DescribeTrafficMirrorTargetsRequest& request) const;
13949 
13950         /**
13951          * <p>Information about one or more Traffic Mirror targets.</p><p><h3>See
13952          * Also:</h3>   <a
13953          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeTrafficMirrorTargets">AWS
13954          * API Reference</a></p>
13955          *
13956          * Queues the request into a thread executor and triggers associated callback when operation has finished.
13957          */
13958         virtual void DescribeTrafficMirrorTargetsAsync(const Model::DescribeTrafficMirrorTargetsRequest& request, const DescribeTrafficMirrorTargetsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
13959 
13960         /**
13961          * <p>Describes one or more attachments between resources and transit gateways. By
13962          * default, all attachments are described. Alternatively, you can filter the
13963          * results by attachment ID, attachment state, resource ID, or resource
13964          * owner.</p><p><h3>See Also:</h3>   <a
13965          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeTransitGatewayAttachments">AWS
13966          * API Reference</a></p>
13967          */
13968         virtual Model::DescribeTransitGatewayAttachmentsOutcome DescribeTransitGatewayAttachments(const Model::DescribeTransitGatewayAttachmentsRequest& request) const;
13969 
13970         /**
13971          * <p>Describes one or more attachments between resources and transit gateways. By
13972          * default, all attachments are described. Alternatively, you can filter the
13973          * results by attachment ID, attachment state, resource ID, or resource
13974          * owner.</p><p><h3>See Also:</h3>   <a
13975          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeTransitGatewayAttachments">AWS
13976          * API Reference</a></p>
13977          *
13978          * returns a future to the operation so that it can be executed in parallel to other requests.
13979          */
13980         virtual Model::DescribeTransitGatewayAttachmentsOutcomeCallable DescribeTransitGatewayAttachmentsCallable(const Model::DescribeTransitGatewayAttachmentsRequest& request) const;
13981 
13982         /**
13983          * <p>Describes one or more attachments between resources and transit gateways. By
13984          * default, all attachments are described. Alternatively, you can filter the
13985          * results by attachment ID, attachment state, resource ID, or resource
13986          * owner.</p><p><h3>See Also:</h3>   <a
13987          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeTransitGatewayAttachments">AWS
13988          * API Reference</a></p>
13989          *
13990          * Queues the request into a thread executor and triggers associated callback when operation has finished.
13991          */
13992         virtual void DescribeTransitGatewayAttachmentsAsync(const Model::DescribeTransitGatewayAttachmentsRequest& request, const DescribeTransitGatewayAttachmentsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
13993 
13994         /**
13995          * <p>Describes one or more Connect peers.</p><p><h3>See Also:</h3>   <a
13996          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeTransitGatewayConnectPeers">AWS
13997          * API Reference</a></p>
13998          */
13999         virtual Model::DescribeTransitGatewayConnectPeersOutcome DescribeTransitGatewayConnectPeers(const Model::DescribeTransitGatewayConnectPeersRequest& request) const;
14000 
14001         /**
14002          * <p>Describes one or more Connect peers.</p><p><h3>See Also:</h3>   <a
14003          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeTransitGatewayConnectPeers">AWS
14004          * API Reference</a></p>
14005          *
14006          * returns a future to the operation so that it can be executed in parallel to other requests.
14007          */
14008         virtual Model::DescribeTransitGatewayConnectPeersOutcomeCallable DescribeTransitGatewayConnectPeersCallable(const Model::DescribeTransitGatewayConnectPeersRequest& request) const;
14009 
14010         /**
14011          * <p>Describes one or more Connect peers.</p><p><h3>See Also:</h3>   <a
14012          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeTransitGatewayConnectPeers">AWS
14013          * API Reference</a></p>
14014          *
14015          * Queues the request into a thread executor and triggers associated callback when operation has finished.
14016          */
14017         virtual void DescribeTransitGatewayConnectPeersAsync(const Model::DescribeTransitGatewayConnectPeersRequest& request, const DescribeTransitGatewayConnectPeersResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
14018 
14019         /**
14020          * <p>Describes one or more Connect attachments.</p><p><h3>See Also:</h3>   <a
14021          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeTransitGatewayConnects">AWS
14022          * API Reference</a></p>
14023          */
14024         virtual Model::DescribeTransitGatewayConnectsOutcome DescribeTransitGatewayConnects(const Model::DescribeTransitGatewayConnectsRequest& request) const;
14025 
14026         /**
14027          * <p>Describes one or more Connect attachments.</p><p><h3>See Also:</h3>   <a
14028          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeTransitGatewayConnects">AWS
14029          * API Reference</a></p>
14030          *
14031          * returns a future to the operation so that it can be executed in parallel to other requests.
14032          */
14033         virtual Model::DescribeTransitGatewayConnectsOutcomeCallable DescribeTransitGatewayConnectsCallable(const Model::DescribeTransitGatewayConnectsRequest& request) const;
14034 
14035         /**
14036          * <p>Describes one or more Connect attachments.</p><p><h3>See Also:</h3>   <a
14037          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeTransitGatewayConnects">AWS
14038          * API Reference</a></p>
14039          *
14040          * Queues the request into a thread executor and triggers associated callback when operation has finished.
14041          */
14042         virtual void DescribeTransitGatewayConnectsAsync(const Model::DescribeTransitGatewayConnectsRequest& request, const DescribeTransitGatewayConnectsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
14043 
14044         /**
14045          * <p>Describes one or more transit gateway multicast domains.</p><p><h3>See
14046          * Also:</h3>   <a
14047          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeTransitGatewayMulticastDomains">AWS
14048          * API Reference</a></p>
14049          */
14050         virtual Model::DescribeTransitGatewayMulticastDomainsOutcome DescribeTransitGatewayMulticastDomains(const Model::DescribeTransitGatewayMulticastDomainsRequest& request) const;
14051 
14052         /**
14053          * <p>Describes one or more transit gateway multicast domains.</p><p><h3>See
14054          * Also:</h3>   <a
14055          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeTransitGatewayMulticastDomains">AWS
14056          * API Reference</a></p>
14057          *
14058          * returns a future to the operation so that it can be executed in parallel to other requests.
14059          */
14060         virtual Model::DescribeTransitGatewayMulticastDomainsOutcomeCallable DescribeTransitGatewayMulticastDomainsCallable(const Model::DescribeTransitGatewayMulticastDomainsRequest& request) const;
14061 
14062         /**
14063          * <p>Describes one or more transit gateway multicast domains.</p><p><h3>See
14064          * Also:</h3>   <a
14065          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeTransitGatewayMulticastDomains">AWS
14066          * API Reference</a></p>
14067          *
14068          * Queues the request into a thread executor and triggers associated callback when operation has finished.
14069          */
14070         virtual void DescribeTransitGatewayMulticastDomainsAsync(const Model::DescribeTransitGatewayMulticastDomainsRequest& request, const DescribeTransitGatewayMulticastDomainsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
14071 
14072         /**
14073          * <p>Describes your transit gateway peering attachments.</p><p><h3>See Also:</h3>
14074          * <a
14075          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeTransitGatewayPeeringAttachments">AWS
14076          * API Reference</a></p>
14077          */
14078         virtual Model::DescribeTransitGatewayPeeringAttachmentsOutcome DescribeTransitGatewayPeeringAttachments(const Model::DescribeTransitGatewayPeeringAttachmentsRequest& request) const;
14079 
14080         /**
14081          * <p>Describes your transit gateway peering attachments.</p><p><h3>See Also:</h3>
14082          * <a
14083          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeTransitGatewayPeeringAttachments">AWS
14084          * API Reference</a></p>
14085          *
14086          * returns a future to the operation so that it can be executed in parallel to other requests.
14087          */
14088         virtual Model::DescribeTransitGatewayPeeringAttachmentsOutcomeCallable DescribeTransitGatewayPeeringAttachmentsCallable(const Model::DescribeTransitGatewayPeeringAttachmentsRequest& request) const;
14089 
14090         /**
14091          * <p>Describes your transit gateway peering attachments.</p><p><h3>See Also:</h3>
14092          * <a
14093          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeTransitGatewayPeeringAttachments">AWS
14094          * API Reference</a></p>
14095          *
14096          * Queues the request into a thread executor and triggers associated callback when operation has finished.
14097          */
14098         virtual void DescribeTransitGatewayPeeringAttachmentsAsync(const Model::DescribeTransitGatewayPeeringAttachmentsRequest& request, const DescribeTransitGatewayPeeringAttachmentsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
14099 
14100         /**
14101          * <p>Describes one or more transit gateway route tables. By default, all transit
14102          * gateway route tables are described. Alternatively, you can filter the
14103          * results.</p><p><h3>See Also:</h3>   <a
14104          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeTransitGatewayRouteTables">AWS
14105          * API Reference</a></p>
14106          */
14107         virtual Model::DescribeTransitGatewayRouteTablesOutcome DescribeTransitGatewayRouteTables(const Model::DescribeTransitGatewayRouteTablesRequest& request) const;
14108 
14109         /**
14110          * <p>Describes one or more transit gateway route tables. By default, all transit
14111          * gateway route tables are described. Alternatively, you can filter the
14112          * results.</p><p><h3>See Also:</h3>   <a
14113          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeTransitGatewayRouteTables">AWS
14114          * API Reference</a></p>
14115          *
14116          * returns a future to the operation so that it can be executed in parallel to other requests.
14117          */
14118         virtual Model::DescribeTransitGatewayRouteTablesOutcomeCallable DescribeTransitGatewayRouteTablesCallable(const Model::DescribeTransitGatewayRouteTablesRequest& request) const;
14119 
14120         /**
14121          * <p>Describes one or more transit gateway route tables. By default, all transit
14122          * gateway route tables are described. Alternatively, you can filter the
14123          * results.</p><p><h3>See Also:</h3>   <a
14124          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeTransitGatewayRouteTables">AWS
14125          * API Reference</a></p>
14126          *
14127          * Queues the request into a thread executor and triggers associated callback when operation has finished.
14128          */
14129         virtual void DescribeTransitGatewayRouteTablesAsync(const Model::DescribeTransitGatewayRouteTablesRequest& request, const DescribeTransitGatewayRouteTablesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
14130 
14131         /**
14132          * <p>Describes one or more VPC attachments. By default, all VPC attachments are
14133          * described. Alternatively, you can filter the results.</p><p><h3>See Also:</h3>
14134          * <a
14135          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeTransitGatewayVpcAttachments">AWS
14136          * API Reference</a></p>
14137          */
14138         virtual Model::DescribeTransitGatewayVpcAttachmentsOutcome DescribeTransitGatewayVpcAttachments(const Model::DescribeTransitGatewayVpcAttachmentsRequest& request) const;
14139 
14140         /**
14141          * <p>Describes one or more VPC attachments. By default, all VPC attachments are
14142          * described. Alternatively, you can filter the results.</p><p><h3>See Also:</h3>
14143          * <a
14144          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeTransitGatewayVpcAttachments">AWS
14145          * API Reference</a></p>
14146          *
14147          * returns a future to the operation so that it can be executed in parallel to other requests.
14148          */
14149         virtual Model::DescribeTransitGatewayVpcAttachmentsOutcomeCallable DescribeTransitGatewayVpcAttachmentsCallable(const Model::DescribeTransitGatewayVpcAttachmentsRequest& request) const;
14150 
14151         /**
14152          * <p>Describes one or more VPC attachments. By default, all VPC attachments are
14153          * described. Alternatively, you can filter the results.</p><p><h3>See Also:</h3>
14154          * <a
14155          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeTransitGatewayVpcAttachments">AWS
14156          * API Reference</a></p>
14157          *
14158          * Queues the request into a thread executor and triggers associated callback when operation has finished.
14159          */
14160         virtual void DescribeTransitGatewayVpcAttachmentsAsync(const Model::DescribeTransitGatewayVpcAttachmentsRequest& request, const DescribeTransitGatewayVpcAttachmentsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
14161 
14162         /**
14163          * <p>Describes one or more transit gateways. By default, all transit gateways are
14164          * described. Alternatively, you can filter the results.</p><p><h3>See Also:</h3>
14165          * <a
14166          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeTransitGateways">AWS
14167          * API Reference</a></p>
14168          */
14169         virtual Model::DescribeTransitGatewaysOutcome DescribeTransitGateways(const Model::DescribeTransitGatewaysRequest& request) const;
14170 
14171         /**
14172          * <p>Describes one or more transit gateways. By default, all transit gateways are
14173          * described. Alternatively, you can filter the results.</p><p><h3>See Also:</h3>
14174          * <a
14175          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeTransitGateways">AWS
14176          * API Reference</a></p>
14177          *
14178          * returns a future to the operation so that it can be executed in parallel to other requests.
14179          */
14180         virtual Model::DescribeTransitGatewaysOutcomeCallable DescribeTransitGatewaysCallable(const Model::DescribeTransitGatewaysRequest& request) const;
14181 
14182         /**
14183          * <p>Describes one or more transit gateways. By default, all transit gateways are
14184          * described. Alternatively, you can filter the results.</p><p><h3>See Also:</h3>
14185          * <a
14186          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeTransitGateways">AWS
14187          * API Reference</a></p>
14188          *
14189          * Queues the request into a thread executor and triggers associated callback when operation has finished.
14190          */
14191         virtual void DescribeTransitGatewaysAsync(const Model::DescribeTransitGatewaysRequest& request, const DescribeTransitGatewaysResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
14192 
14193         /**
14194          *  <p>This API action is currently in <b>limited preview only</b>. If you
14195          * are interested in using this feature, contact your account manager.</p>
14196          * <p>Describes one or more network interface trunk associations.</p><p><h3>See
14197          * Also:</h3>   <a
14198          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeTrunkInterfaceAssociations">AWS
14199          * API Reference</a></p>
14200          */
14201         virtual Model::DescribeTrunkInterfaceAssociationsOutcome DescribeTrunkInterfaceAssociations(const Model::DescribeTrunkInterfaceAssociationsRequest& request) const;
14202 
14203         /**
14204          *  <p>This API action is currently in <b>limited preview only</b>. If you
14205          * are interested in using this feature, contact your account manager.</p>
14206          * <p>Describes one or more network interface trunk associations.</p><p><h3>See
14207          * Also:</h3>   <a
14208          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeTrunkInterfaceAssociations">AWS
14209          * API Reference</a></p>
14210          *
14211          * returns a future to the operation so that it can be executed in parallel to other requests.
14212          */
14213         virtual Model::DescribeTrunkInterfaceAssociationsOutcomeCallable DescribeTrunkInterfaceAssociationsCallable(const Model::DescribeTrunkInterfaceAssociationsRequest& request) const;
14214 
14215         /**
14216          *  <p>This API action is currently in <b>limited preview only</b>. If you
14217          * are interested in using this feature, contact your account manager.</p>
14218          * <p>Describes one or more network interface trunk associations.</p><p><h3>See
14219          * Also:</h3>   <a
14220          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeTrunkInterfaceAssociations">AWS
14221          * API Reference</a></p>
14222          *
14223          * Queues the request into a thread executor and triggers associated callback when operation has finished.
14224          */
14225         virtual void DescribeTrunkInterfaceAssociationsAsync(const Model::DescribeTrunkInterfaceAssociationsRequest& request, const DescribeTrunkInterfaceAssociationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
14226 
14227         /**
14228          * <p>Describes the specified attribute of the specified volume. You can specify
14229          * only one attribute at a time.</p> <p>For more information about EBS volumes, see
14230          * <a
14231          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumes.html">Amazon
14232          * EBS volumes</a> in the <i>Amazon Elastic Compute Cloud User
14233          * Guide</i>.</p><p><h3>See Also:</h3>   <a
14234          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVolumeAttribute">AWS
14235          * API Reference</a></p>
14236          */
14237         virtual Model::DescribeVolumeAttributeOutcome DescribeVolumeAttribute(const Model::DescribeVolumeAttributeRequest& request) const;
14238 
14239         /**
14240          * <p>Describes the specified attribute of the specified volume. You can specify
14241          * only one attribute at a time.</p> <p>For more information about EBS volumes, see
14242          * <a
14243          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumes.html">Amazon
14244          * EBS volumes</a> in the <i>Amazon Elastic Compute Cloud User
14245          * Guide</i>.</p><p><h3>See Also:</h3>   <a
14246          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVolumeAttribute">AWS
14247          * API Reference</a></p>
14248          *
14249          * returns a future to the operation so that it can be executed in parallel to other requests.
14250          */
14251         virtual Model::DescribeVolumeAttributeOutcomeCallable DescribeVolumeAttributeCallable(const Model::DescribeVolumeAttributeRequest& request) const;
14252 
14253         /**
14254          * <p>Describes the specified attribute of the specified volume. You can specify
14255          * only one attribute at a time.</p> <p>For more information about EBS volumes, see
14256          * <a
14257          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumes.html">Amazon
14258          * EBS volumes</a> in the <i>Amazon Elastic Compute Cloud User
14259          * Guide</i>.</p><p><h3>See Also:</h3>   <a
14260          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVolumeAttribute">AWS
14261          * API Reference</a></p>
14262          *
14263          * Queues the request into a thread executor and triggers associated callback when operation has finished.
14264          */
14265         virtual void DescribeVolumeAttributeAsync(const Model::DescribeVolumeAttributeRequest& request, const DescribeVolumeAttributeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
14266 
14267         /**
14268          * <p>Describes the status of the specified volumes. Volume status provides the
14269          * result of the checks performed on your volumes to determine events that can
14270          * impair the performance of your volumes. The performance of a volume can be
14271          * affected if an issue occurs on the volume's underlying host. If the volume's
14272          * underlying host experiences a power outage or system issue, after the system is
14273          * restored, there could be data inconsistencies on the volume. Volume events
14274          * notify you if this occurs. Volume actions notify you if any action needs to be
14275          * taken in response to the event.</p> <p>The <code>DescribeVolumeStatus</code>
14276          * operation provides the following information about the specified volumes:</p>
14277          * <p> <i>Status</i>: Reflects the current status of the volume. The possible
14278          * values are <code>ok</code>, <code>impaired</code> , <code>warning</code>, or
14279          * <code>insufficient-data</code>. If all checks pass, the overall status of the
14280          * volume is <code>ok</code>. If the check fails, the overall status is
14281          * <code>impaired</code>. If the status is <code>insufficient-data</code>, then the
14282          * checks might still be taking place on your volume at the time. We recommend that
14283          * you retry the request. For more information about volume status, see <a
14284          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/monitoring-volume-status.html">Monitor
14285          * the status of your volumes</a> in the <i>Amazon Elastic Compute Cloud User
14286          * Guide</i>.</p> <p> <i>Events</i>: Reflect the cause of a volume status and might
14287          * require you to take action. For example, if your volume returns an
14288          * <code>impaired</code> status, then the volume event might be
14289          * <code>potential-data-inconsistency</code>. This means that your volume has been
14290          * affected by an issue with the underlying host, has all I/O operations disabled,
14291          * and might have inconsistent data.</p> <p> <i>Actions</i>: Reflect the actions
14292          * you might have to take in response to an event. For example, if the status of
14293          * the volume is <code>impaired</code> and the volume event shows
14294          * <code>potential-data-inconsistency</code>, then the action shows
14295          * <code>enable-volume-io</code>. This means that you may want to enable the I/O
14296          * operations for the volume by calling the <a>EnableVolumeIO</a> action and then
14297          * check the volume for data consistency.</p> <p>Volume status is based on the
14298          * volume status checks, and does not reflect the volume state. Therefore, volume
14299          * status does not indicate volumes in the <code>error</code> state (for example,
14300          * when a volume is incapable of accepting I/O.)</p><p><h3>See Also:</h3>   <a
14301          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVolumeStatus">AWS
14302          * API Reference</a></p>
14303          */
14304         virtual Model::DescribeVolumeStatusOutcome DescribeVolumeStatus(const Model::DescribeVolumeStatusRequest& request) const;
14305 
14306         /**
14307          * <p>Describes the status of the specified volumes. Volume status provides the
14308          * result of the checks performed on your volumes to determine events that can
14309          * impair the performance of your volumes. The performance of a volume can be
14310          * affected if an issue occurs on the volume's underlying host. If the volume's
14311          * underlying host experiences a power outage or system issue, after the system is
14312          * restored, there could be data inconsistencies on the volume. Volume events
14313          * notify you if this occurs. Volume actions notify you if any action needs to be
14314          * taken in response to the event.</p> <p>The <code>DescribeVolumeStatus</code>
14315          * operation provides the following information about the specified volumes:</p>
14316          * <p> <i>Status</i>: Reflects the current status of the volume. The possible
14317          * values are <code>ok</code>, <code>impaired</code> , <code>warning</code>, or
14318          * <code>insufficient-data</code>. If all checks pass, the overall status of the
14319          * volume is <code>ok</code>. If the check fails, the overall status is
14320          * <code>impaired</code>. If the status is <code>insufficient-data</code>, then the
14321          * checks might still be taking place on your volume at the time. We recommend that
14322          * you retry the request. For more information about volume status, see <a
14323          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/monitoring-volume-status.html">Monitor
14324          * the status of your volumes</a> in the <i>Amazon Elastic Compute Cloud User
14325          * Guide</i>.</p> <p> <i>Events</i>: Reflect the cause of a volume status and might
14326          * require you to take action. For example, if your volume returns an
14327          * <code>impaired</code> status, then the volume event might be
14328          * <code>potential-data-inconsistency</code>. This means that your volume has been
14329          * affected by an issue with the underlying host, has all I/O operations disabled,
14330          * and might have inconsistent data.</p> <p> <i>Actions</i>: Reflect the actions
14331          * you might have to take in response to an event. For example, if the status of
14332          * the volume is <code>impaired</code> and the volume event shows
14333          * <code>potential-data-inconsistency</code>, then the action shows
14334          * <code>enable-volume-io</code>. This means that you may want to enable the I/O
14335          * operations for the volume by calling the <a>EnableVolumeIO</a> action and then
14336          * check the volume for data consistency.</p> <p>Volume status is based on the
14337          * volume status checks, and does not reflect the volume state. Therefore, volume
14338          * status does not indicate volumes in the <code>error</code> state (for example,
14339          * when a volume is incapable of accepting I/O.)</p><p><h3>See Also:</h3>   <a
14340          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVolumeStatus">AWS
14341          * API Reference</a></p>
14342          *
14343          * returns a future to the operation so that it can be executed in parallel to other requests.
14344          */
14345         virtual Model::DescribeVolumeStatusOutcomeCallable DescribeVolumeStatusCallable(const Model::DescribeVolumeStatusRequest& request) const;
14346 
14347         /**
14348          * <p>Describes the status of the specified volumes. Volume status provides the
14349          * result of the checks performed on your volumes to determine events that can
14350          * impair the performance of your volumes. The performance of a volume can be
14351          * affected if an issue occurs on the volume's underlying host. If the volume's
14352          * underlying host experiences a power outage or system issue, after the system is
14353          * restored, there could be data inconsistencies on the volume. Volume events
14354          * notify you if this occurs. Volume actions notify you if any action needs to be
14355          * taken in response to the event.</p> <p>The <code>DescribeVolumeStatus</code>
14356          * operation provides the following information about the specified volumes:</p>
14357          * <p> <i>Status</i>: Reflects the current status of the volume. The possible
14358          * values are <code>ok</code>, <code>impaired</code> , <code>warning</code>, or
14359          * <code>insufficient-data</code>. If all checks pass, the overall status of the
14360          * volume is <code>ok</code>. If the check fails, the overall status is
14361          * <code>impaired</code>. If the status is <code>insufficient-data</code>, then the
14362          * checks might still be taking place on your volume at the time. We recommend that
14363          * you retry the request. For more information about volume status, see <a
14364          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/monitoring-volume-status.html">Monitor
14365          * the status of your volumes</a> in the <i>Amazon Elastic Compute Cloud User
14366          * Guide</i>.</p> <p> <i>Events</i>: Reflect the cause of a volume status and might
14367          * require you to take action. For example, if your volume returns an
14368          * <code>impaired</code> status, then the volume event might be
14369          * <code>potential-data-inconsistency</code>. This means that your volume has been
14370          * affected by an issue with the underlying host, has all I/O operations disabled,
14371          * and might have inconsistent data.</p> <p> <i>Actions</i>: Reflect the actions
14372          * you might have to take in response to an event. For example, if the status of
14373          * the volume is <code>impaired</code> and the volume event shows
14374          * <code>potential-data-inconsistency</code>, then the action shows
14375          * <code>enable-volume-io</code>. This means that you may want to enable the I/O
14376          * operations for the volume by calling the <a>EnableVolumeIO</a> action and then
14377          * check the volume for data consistency.</p> <p>Volume status is based on the
14378          * volume status checks, and does not reflect the volume state. Therefore, volume
14379          * status does not indicate volumes in the <code>error</code> state (for example,
14380          * when a volume is incapable of accepting I/O.)</p><p><h3>See Also:</h3>   <a
14381          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVolumeStatus">AWS
14382          * API Reference</a></p>
14383          *
14384          * Queues the request into a thread executor and triggers associated callback when operation has finished.
14385          */
14386         virtual void DescribeVolumeStatusAsync(const Model::DescribeVolumeStatusRequest& request, const DescribeVolumeStatusResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
14387 
14388         /**
14389          * <p>Describes the specified EBS volumes or all of your EBS volumes.</p> <p>If you
14390          * are describing a long list of volumes, we recommend that you paginate the output
14391          * to make the list more manageable. The <code>MaxResults</code> parameter sets the
14392          * maximum number of results returned in a single page. If the list of results
14393          * exceeds your <code>MaxResults</code> value, then that number of results is
14394          * returned along with a <code>NextToken</code> value that can be passed to a
14395          * subsequent <code>DescribeVolumes</code> request to retrieve the remaining
14396          * results.</p> <p>For more information about EBS volumes, see <a
14397          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumes.html">Amazon
14398          * EBS volumes</a> in the <i>Amazon Elastic Compute Cloud User
14399          * Guide</i>.</p><p><h3>See Also:</h3>   <a
14400          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVolumes">AWS
14401          * API Reference</a></p>
14402          */
14403         virtual Model::DescribeVolumesOutcome DescribeVolumes(const Model::DescribeVolumesRequest& request) const;
14404 
14405         /**
14406          * <p>Describes the specified EBS volumes or all of your EBS volumes.</p> <p>If you
14407          * are describing a long list of volumes, we recommend that you paginate the output
14408          * to make the list more manageable. The <code>MaxResults</code> parameter sets the
14409          * maximum number of results returned in a single page. If the list of results
14410          * exceeds your <code>MaxResults</code> value, then that number of results is
14411          * returned along with a <code>NextToken</code> value that can be passed to a
14412          * subsequent <code>DescribeVolumes</code> request to retrieve the remaining
14413          * results.</p> <p>For more information about EBS volumes, see <a
14414          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumes.html">Amazon
14415          * EBS volumes</a> in the <i>Amazon Elastic Compute Cloud User
14416          * Guide</i>.</p><p><h3>See Also:</h3>   <a
14417          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVolumes">AWS
14418          * API Reference</a></p>
14419          *
14420          * returns a future to the operation so that it can be executed in parallel to other requests.
14421          */
14422         virtual Model::DescribeVolumesOutcomeCallable DescribeVolumesCallable(const Model::DescribeVolumesRequest& request) const;
14423 
14424         /**
14425          * <p>Describes the specified EBS volumes or all of your EBS volumes.</p> <p>If you
14426          * are describing a long list of volumes, we recommend that you paginate the output
14427          * to make the list more manageable. The <code>MaxResults</code> parameter sets the
14428          * maximum number of results returned in a single page. If the list of results
14429          * exceeds your <code>MaxResults</code> value, then that number of results is
14430          * returned along with a <code>NextToken</code> value that can be passed to a
14431          * subsequent <code>DescribeVolumes</code> request to retrieve the remaining
14432          * results.</p> <p>For more information about EBS volumes, see <a
14433          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumes.html">Amazon
14434          * EBS volumes</a> in the <i>Amazon Elastic Compute Cloud User
14435          * Guide</i>.</p><p><h3>See Also:</h3>   <a
14436          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVolumes">AWS
14437          * API Reference</a></p>
14438          *
14439          * Queues the request into a thread executor and triggers associated callback when operation has finished.
14440          */
14441         virtual void DescribeVolumesAsync(const Model::DescribeVolumesRequest& request, const DescribeVolumesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
14442 
14443         /**
14444          * <p>Describes the most recent volume modification request for the specified EBS
14445          * volumes.</p> <p>If a volume has never been modified, some information in the
14446          * output will be null. If a volume has been modified more than once, the output
14447          * includes only the most recent modification request.</p> <p>You can also use
14448          * CloudWatch Events to check the status of a modification to an EBS volume. For
14449          * information about CloudWatch Events, see the <a
14450          * href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/">Amazon
14451          * CloudWatch Events User Guide</a>. For more information, see <a
14452          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/monitoring-volume-modifications.html">Monitor
14453          * the progress of volume modifications</a> in the <i>Amazon Elastic Compute Cloud
14454          * User Guide</i>.</p><p><h3>See Also:</h3>   <a
14455          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVolumesModifications">AWS
14456          * API Reference</a></p>
14457          */
14458         virtual Model::DescribeVolumesModificationsOutcome DescribeVolumesModifications(const Model::DescribeVolumesModificationsRequest& request) const;
14459 
14460         /**
14461          * <p>Describes the most recent volume modification request for the specified EBS
14462          * volumes.</p> <p>If a volume has never been modified, some information in the
14463          * output will be null. If a volume has been modified more than once, the output
14464          * includes only the most recent modification request.</p> <p>You can also use
14465          * CloudWatch Events to check the status of a modification to an EBS volume. For
14466          * information about CloudWatch Events, see the <a
14467          * href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/">Amazon
14468          * CloudWatch Events User Guide</a>. For more information, see <a
14469          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/monitoring-volume-modifications.html">Monitor
14470          * the progress of volume modifications</a> in the <i>Amazon Elastic Compute Cloud
14471          * User Guide</i>.</p><p><h3>See Also:</h3>   <a
14472          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVolumesModifications">AWS
14473          * API Reference</a></p>
14474          *
14475          * returns a future to the operation so that it can be executed in parallel to other requests.
14476          */
14477         virtual Model::DescribeVolumesModificationsOutcomeCallable DescribeVolumesModificationsCallable(const Model::DescribeVolumesModificationsRequest& request) const;
14478 
14479         /**
14480          * <p>Describes the most recent volume modification request for the specified EBS
14481          * volumes.</p> <p>If a volume has never been modified, some information in the
14482          * output will be null. If a volume has been modified more than once, the output
14483          * includes only the most recent modification request.</p> <p>You can also use
14484          * CloudWatch Events to check the status of a modification to an EBS volume. For
14485          * information about CloudWatch Events, see the <a
14486          * href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/">Amazon
14487          * CloudWatch Events User Guide</a>. For more information, see <a
14488          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/monitoring-volume-modifications.html">Monitor
14489          * the progress of volume modifications</a> in the <i>Amazon Elastic Compute Cloud
14490          * User Guide</i>.</p><p><h3>See Also:</h3>   <a
14491          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVolumesModifications">AWS
14492          * API Reference</a></p>
14493          *
14494          * Queues the request into a thread executor and triggers associated callback when operation has finished.
14495          */
14496         virtual void DescribeVolumesModificationsAsync(const Model::DescribeVolumesModificationsRequest& request, const DescribeVolumesModificationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
14497 
14498         /**
14499          * <p>Describes the specified attribute of the specified VPC. You can specify only
14500          * one attribute at a time.</p><p><h3>See Also:</h3>   <a
14501          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVpcAttribute">AWS
14502          * API Reference</a></p>
14503          */
14504         virtual Model::DescribeVpcAttributeOutcome DescribeVpcAttribute(const Model::DescribeVpcAttributeRequest& request) const;
14505 
14506         /**
14507          * <p>Describes the specified attribute of the specified VPC. You can specify only
14508          * one attribute at a time.</p><p><h3>See Also:</h3>   <a
14509          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVpcAttribute">AWS
14510          * API Reference</a></p>
14511          *
14512          * returns a future to the operation so that it can be executed in parallel to other requests.
14513          */
14514         virtual Model::DescribeVpcAttributeOutcomeCallable DescribeVpcAttributeCallable(const Model::DescribeVpcAttributeRequest& request) const;
14515 
14516         /**
14517          * <p>Describes the specified attribute of the specified VPC. You can specify only
14518          * one attribute at a time.</p><p><h3>See Also:</h3>   <a
14519          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVpcAttribute">AWS
14520          * API Reference</a></p>
14521          *
14522          * Queues the request into a thread executor and triggers associated callback when operation has finished.
14523          */
14524         virtual void DescribeVpcAttributeAsync(const Model::DescribeVpcAttributeRequest& request, const DescribeVpcAttributeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
14525 
14526         /**
14527          * <p>Describes the ClassicLink status of one or more VPCs.</p><p><h3>See
14528          * Also:</h3>   <a
14529          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVpcClassicLink">AWS
14530          * API Reference</a></p>
14531          */
14532         virtual Model::DescribeVpcClassicLinkOutcome DescribeVpcClassicLink(const Model::DescribeVpcClassicLinkRequest& request) const;
14533 
14534         /**
14535          * <p>Describes the ClassicLink status of one or more VPCs.</p><p><h3>See
14536          * Also:</h3>   <a
14537          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVpcClassicLink">AWS
14538          * API Reference</a></p>
14539          *
14540          * returns a future to the operation so that it can be executed in parallel to other requests.
14541          */
14542         virtual Model::DescribeVpcClassicLinkOutcomeCallable DescribeVpcClassicLinkCallable(const Model::DescribeVpcClassicLinkRequest& request) const;
14543 
14544         /**
14545          * <p>Describes the ClassicLink status of one or more VPCs.</p><p><h3>See
14546          * Also:</h3>   <a
14547          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVpcClassicLink">AWS
14548          * API Reference</a></p>
14549          *
14550          * Queues the request into a thread executor and triggers associated callback when operation has finished.
14551          */
14552         virtual void DescribeVpcClassicLinkAsync(const Model::DescribeVpcClassicLinkRequest& request, const DescribeVpcClassicLinkResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
14553 
14554         /**
14555          * <p>Describes the ClassicLink DNS support status of one or more VPCs. If enabled,
14556          * the DNS hostname of a linked EC2-Classic instance resolves to its private IP
14557          * address when addressed from an instance in the VPC to which it's linked.
14558          * Similarly, the DNS hostname of an instance in a VPC resolves to its private IP
14559          * address when addressed from a linked EC2-Classic instance. For more information,
14560          * see <a
14561          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-classiclink.html">ClassicLink</a>
14562          * in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p><p><h3>See Also:</h3>
14563          * <a
14564          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVpcClassicLinkDnsSupport">AWS
14565          * API Reference</a></p>
14566          */
14567         virtual Model::DescribeVpcClassicLinkDnsSupportOutcome DescribeVpcClassicLinkDnsSupport(const Model::DescribeVpcClassicLinkDnsSupportRequest& request) const;
14568 
14569         /**
14570          * <p>Describes the ClassicLink DNS support status of one or more VPCs. If enabled,
14571          * the DNS hostname of a linked EC2-Classic instance resolves to its private IP
14572          * address when addressed from an instance in the VPC to which it's linked.
14573          * Similarly, the DNS hostname of an instance in a VPC resolves to its private IP
14574          * address when addressed from a linked EC2-Classic instance. For more information,
14575          * see <a
14576          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-classiclink.html">ClassicLink</a>
14577          * in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p><p><h3>See Also:</h3>
14578          * <a
14579          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVpcClassicLinkDnsSupport">AWS
14580          * API Reference</a></p>
14581          *
14582          * returns a future to the operation so that it can be executed in parallel to other requests.
14583          */
14584         virtual Model::DescribeVpcClassicLinkDnsSupportOutcomeCallable DescribeVpcClassicLinkDnsSupportCallable(const Model::DescribeVpcClassicLinkDnsSupportRequest& request) const;
14585 
14586         /**
14587          * <p>Describes the ClassicLink DNS support status of one or more VPCs. If enabled,
14588          * the DNS hostname of a linked EC2-Classic instance resolves to its private IP
14589          * address when addressed from an instance in the VPC to which it's linked.
14590          * Similarly, the DNS hostname of an instance in a VPC resolves to its private IP
14591          * address when addressed from a linked EC2-Classic instance. For more information,
14592          * see <a
14593          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-classiclink.html">ClassicLink</a>
14594          * in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p><p><h3>See Also:</h3>
14595          * <a
14596          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVpcClassicLinkDnsSupport">AWS
14597          * API Reference</a></p>
14598          *
14599          * Queues the request into a thread executor and triggers associated callback when operation has finished.
14600          */
14601         virtual void DescribeVpcClassicLinkDnsSupportAsync(const Model::DescribeVpcClassicLinkDnsSupportRequest& request, const DescribeVpcClassicLinkDnsSupportResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
14602 
14603         /**
14604          * <p>Describes the connection notifications for VPC endpoints and VPC endpoint
14605          * services.</p><p><h3>See Also:</h3>   <a
14606          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVpcEndpointConnectionNotifications">AWS
14607          * API Reference</a></p>
14608          */
14609         virtual Model::DescribeVpcEndpointConnectionNotificationsOutcome DescribeVpcEndpointConnectionNotifications(const Model::DescribeVpcEndpointConnectionNotificationsRequest& request) const;
14610 
14611         /**
14612          * <p>Describes the connection notifications for VPC endpoints and VPC endpoint
14613          * services.</p><p><h3>See Also:</h3>   <a
14614          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVpcEndpointConnectionNotifications">AWS
14615          * API Reference</a></p>
14616          *
14617          * returns a future to the operation so that it can be executed in parallel to other requests.
14618          */
14619         virtual Model::DescribeVpcEndpointConnectionNotificationsOutcomeCallable DescribeVpcEndpointConnectionNotificationsCallable(const Model::DescribeVpcEndpointConnectionNotificationsRequest& request) const;
14620 
14621         /**
14622          * <p>Describes the connection notifications for VPC endpoints and VPC endpoint
14623          * services.</p><p><h3>See Also:</h3>   <a
14624          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVpcEndpointConnectionNotifications">AWS
14625          * API Reference</a></p>
14626          *
14627          * Queues the request into a thread executor and triggers associated callback when operation has finished.
14628          */
14629         virtual void DescribeVpcEndpointConnectionNotificationsAsync(const Model::DescribeVpcEndpointConnectionNotificationsRequest& request, const DescribeVpcEndpointConnectionNotificationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
14630 
14631         /**
14632          * <p>Describes the VPC endpoint connections to your VPC endpoint services,
14633          * including any endpoints that are pending your acceptance.</p><p><h3>See
14634          * Also:</h3>   <a
14635          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVpcEndpointConnections">AWS
14636          * API Reference</a></p>
14637          */
14638         virtual Model::DescribeVpcEndpointConnectionsOutcome DescribeVpcEndpointConnections(const Model::DescribeVpcEndpointConnectionsRequest& request) const;
14639 
14640         /**
14641          * <p>Describes the VPC endpoint connections to your VPC endpoint services,
14642          * including any endpoints that are pending your acceptance.</p><p><h3>See
14643          * Also:</h3>   <a
14644          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVpcEndpointConnections">AWS
14645          * API Reference</a></p>
14646          *
14647          * returns a future to the operation so that it can be executed in parallel to other requests.
14648          */
14649         virtual Model::DescribeVpcEndpointConnectionsOutcomeCallable DescribeVpcEndpointConnectionsCallable(const Model::DescribeVpcEndpointConnectionsRequest& request) const;
14650 
14651         /**
14652          * <p>Describes the VPC endpoint connections to your VPC endpoint services,
14653          * including any endpoints that are pending your acceptance.</p><p><h3>See
14654          * Also:</h3>   <a
14655          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVpcEndpointConnections">AWS
14656          * API Reference</a></p>
14657          *
14658          * Queues the request into a thread executor and triggers associated callback when operation has finished.
14659          */
14660         virtual void DescribeVpcEndpointConnectionsAsync(const Model::DescribeVpcEndpointConnectionsRequest& request, const DescribeVpcEndpointConnectionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
14661 
14662         /**
14663          * <p>Describes the VPC endpoint service configurations in your account (your
14664          * services).</p><p><h3>See Also:</h3>   <a
14665          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVpcEndpointServiceConfigurations">AWS
14666          * API Reference</a></p>
14667          */
14668         virtual Model::DescribeVpcEndpointServiceConfigurationsOutcome DescribeVpcEndpointServiceConfigurations(const Model::DescribeVpcEndpointServiceConfigurationsRequest& request) const;
14669 
14670         /**
14671          * <p>Describes the VPC endpoint service configurations in your account (your
14672          * services).</p><p><h3>See Also:</h3>   <a
14673          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVpcEndpointServiceConfigurations">AWS
14674          * API Reference</a></p>
14675          *
14676          * returns a future to the operation so that it can be executed in parallel to other requests.
14677          */
14678         virtual Model::DescribeVpcEndpointServiceConfigurationsOutcomeCallable DescribeVpcEndpointServiceConfigurationsCallable(const Model::DescribeVpcEndpointServiceConfigurationsRequest& request) const;
14679 
14680         /**
14681          * <p>Describes the VPC endpoint service configurations in your account (your
14682          * services).</p><p><h3>See Also:</h3>   <a
14683          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVpcEndpointServiceConfigurations">AWS
14684          * API Reference</a></p>
14685          *
14686          * Queues the request into a thread executor and triggers associated callback when operation has finished.
14687          */
14688         virtual void DescribeVpcEndpointServiceConfigurationsAsync(const Model::DescribeVpcEndpointServiceConfigurationsRequest& request, const DescribeVpcEndpointServiceConfigurationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
14689 
14690         /**
14691          * <p>Describes the principals (service consumers) that are permitted to discover
14692          * your VPC endpoint service.</p><p><h3>See Also:</h3>   <a
14693          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVpcEndpointServicePermissions">AWS
14694          * API Reference</a></p>
14695          */
14696         virtual Model::DescribeVpcEndpointServicePermissionsOutcome DescribeVpcEndpointServicePermissions(const Model::DescribeVpcEndpointServicePermissionsRequest& request) const;
14697 
14698         /**
14699          * <p>Describes the principals (service consumers) that are permitted to discover
14700          * your VPC endpoint service.</p><p><h3>See Also:</h3>   <a
14701          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVpcEndpointServicePermissions">AWS
14702          * API Reference</a></p>
14703          *
14704          * returns a future to the operation so that it can be executed in parallel to other requests.
14705          */
14706         virtual Model::DescribeVpcEndpointServicePermissionsOutcomeCallable DescribeVpcEndpointServicePermissionsCallable(const Model::DescribeVpcEndpointServicePermissionsRequest& request) const;
14707 
14708         /**
14709          * <p>Describes the principals (service consumers) that are permitted to discover
14710          * your VPC endpoint service.</p><p><h3>See Also:</h3>   <a
14711          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVpcEndpointServicePermissions">AWS
14712          * API Reference</a></p>
14713          *
14714          * Queues the request into a thread executor and triggers associated callback when operation has finished.
14715          */
14716         virtual void DescribeVpcEndpointServicePermissionsAsync(const Model::DescribeVpcEndpointServicePermissionsRequest& request, const DescribeVpcEndpointServicePermissionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
14717 
14718         /**
14719          * <p>Describes available services to which you can create a VPC endpoint.</p>
14720          * <p>When the service provider and the consumer have different accounts in
14721          * multiple Availability Zones, and the consumer views the VPC endpoint service
14722          * information, the response only includes the common Availability Zones. For
14723          * example, when the service provider account uses <code>us-east-1a</code> and
14724          * <code>us-east-1c</code> and the consumer uses <code>us-east-1a</code> and
14725          * <code>us-east-1b</code>, the response includes the VPC endpoint services in the
14726          * common Availability Zone, <code>us-east-1a</code>.</p><p><h3>See Also:</h3>   <a
14727          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVpcEndpointServices">AWS
14728          * API Reference</a></p>
14729          */
14730         virtual Model::DescribeVpcEndpointServicesOutcome DescribeVpcEndpointServices(const Model::DescribeVpcEndpointServicesRequest& request) const;
14731 
14732         /**
14733          * <p>Describes available services to which you can create a VPC endpoint.</p>
14734          * <p>When the service provider and the consumer have different accounts in
14735          * multiple Availability Zones, and the consumer views the VPC endpoint service
14736          * information, the response only includes the common Availability Zones. For
14737          * example, when the service provider account uses <code>us-east-1a</code> and
14738          * <code>us-east-1c</code> and the consumer uses <code>us-east-1a</code> and
14739          * <code>us-east-1b</code>, the response includes the VPC endpoint services in the
14740          * common Availability Zone, <code>us-east-1a</code>.</p><p><h3>See Also:</h3>   <a
14741          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVpcEndpointServices">AWS
14742          * API Reference</a></p>
14743          *
14744          * returns a future to the operation so that it can be executed in parallel to other requests.
14745          */
14746         virtual Model::DescribeVpcEndpointServicesOutcomeCallable DescribeVpcEndpointServicesCallable(const Model::DescribeVpcEndpointServicesRequest& request) const;
14747 
14748         /**
14749          * <p>Describes available services to which you can create a VPC endpoint.</p>
14750          * <p>When the service provider and the consumer have different accounts in
14751          * multiple Availability Zones, and the consumer views the VPC endpoint service
14752          * information, the response only includes the common Availability Zones. For
14753          * example, when the service provider account uses <code>us-east-1a</code> and
14754          * <code>us-east-1c</code> and the consumer uses <code>us-east-1a</code> and
14755          * <code>us-east-1b</code>, the response includes the VPC endpoint services in the
14756          * common Availability Zone, <code>us-east-1a</code>.</p><p><h3>See Also:</h3>   <a
14757          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVpcEndpointServices">AWS
14758          * API Reference</a></p>
14759          *
14760          * Queues the request into a thread executor and triggers associated callback when operation has finished.
14761          */
14762         virtual void DescribeVpcEndpointServicesAsync(const Model::DescribeVpcEndpointServicesRequest& request, const DescribeVpcEndpointServicesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
14763 
14764         /**
14765          * <p>Describes one or more of your VPC endpoints.</p><p><h3>See Also:</h3>   <a
14766          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVpcEndpoints">AWS
14767          * API Reference</a></p>
14768          */
14769         virtual Model::DescribeVpcEndpointsOutcome DescribeVpcEndpoints(const Model::DescribeVpcEndpointsRequest& request) const;
14770 
14771         /**
14772          * <p>Describes one or more of your VPC endpoints.</p><p><h3>See Also:</h3>   <a
14773          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVpcEndpoints">AWS
14774          * API Reference</a></p>
14775          *
14776          * returns a future to the operation so that it can be executed in parallel to other requests.
14777          */
14778         virtual Model::DescribeVpcEndpointsOutcomeCallable DescribeVpcEndpointsCallable(const Model::DescribeVpcEndpointsRequest& request) const;
14779 
14780         /**
14781          * <p>Describes one or more of your VPC endpoints.</p><p><h3>See Also:</h3>   <a
14782          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVpcEndpoints">AWS
14783          * API Reference</a></p>
14784          *
14785          * Queues the request into a thread executor and triggers associated callback when operation has finished.
14786          */
14787         virtual void DescribeVpcEndpointsAsync(const Model::DescribeVpcEndpointsRequest& request, const DescribeVpcEndpointsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
14788 
14789         /**
14790          * <p>Describes one or more of your VPC peering connections.</p><p><h3>See
14791          * Also:</h3>   <a
14792          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVpcPeeringConnections">AWS
14793          * API Reference</a></p>
14794          */
14795         virtual Model::DescribeVpcPeeringConnectionsOutcome DescribeVpcPeeringConnections(const Model::DescribeVpcPeeringConnectionsRequest& request) const;
14796 
14797         /**
14798          * <p>Describes one or more of your VPC peering connections.</p><p><h3>See
14799          * Also:</h3>   <a
14800          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVpcPeeringConnections">AWS
14801          * API Reference</a></p>
14802          *
14803          * returns a future to the operation so that it can be executed in parallel to other requests.
14804          */
14805         virtual Model::DescribeVpcPeeringConnectionsOutcomeCallable DescribeVpcPeeringConnectionsCallable(const Model::DescribeVpcPeeringConnectionsRequest& request) const;
14806 
14807         /**
14808          * <p>Describes one or more of your VPC peering connections.</p><p><h3>See
14809          * Also:</h3>   <a
14810          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVpcPeeringConnections">AWS
14811          * API Reference</a></p>
14812          *
14813          * Queues the request into a thread executor and triggers associated callback when operation has finished.
14814          */
14815         virtual void DescribeVpcPeeringConnectionsAsync(const Model::DescribeVpcPeeringConnectionsRequest& request, const DescribeVpcPeeringConnectionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
14816 
14817         /**
14818          * <p>Describes one or more of your VPCs.</p><p><h3>See Also:</h3>   <a
14819          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVpcs">AWS
14820          * API Reference</a></p>
14821          */
14822         virtual Model::DescribeVpcsOutcome DescribeVpcs(const Model::DescribeVpcsRequest& request) const;
14823 
14824         /**
14825          * <p>Describes one or more of your VPCs.</p><p><h3>See Also:</h3>   <a
14826          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVpcs">AWS
14827          * API Reference</a></p>
14828          *
14829          * returns a future to the operation so that it can be executed in parallel to other requests.
14830          */
14831         virtual Model::DescribeVpcsOutcomeCallable DescribeVpcsCallable(const Model::DescribeVpcsRequest& request) const;
14832 
14833         /**
14834          * <p>Describes one or more of your VPCs.</p><p><h3>See Also:</h3>   <a
14835          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVpcs">AWS
14836          * API Reference</a></p>
14837          *
14838          * Queues the request into a thread executor and triggers associated callback when operation has finished.
14839          */
14840         virtual void DescribeVpcsAsync(const Model::DescribeVpcsRequest& request, const DescribeVpcsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
14841 
14842         /**
14843          * <p>Describes one or more of your VPN connections.</p> <p>For more information,
14844          * see <a href="https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html">Amazon
14845          * Web Services Site-to-Site VPN</a> in the <i>Amazon Web Services Site-to-Site VPN
14846          * User Guide</i>.</p><p><h3>See Also:</h3>   <a
14847          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVpnConnections">AWS
14848          * API Reference</a></p>
14849          */
14850         virtual Model::DescribeVpnConnectionsOutcome DescribeVpnConnections(const Model::DescribeVpnConnectionsRequest& request) const;
14851 
14852         /**
14853          * <p>Describes one or more of your VPN connections.</p> <p>For more information,
14854          * see <a href="https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html">Amazon
14855          * Web Services Site-to-Site VPN</a> in the <i>Amazon Web Services Site-to-Site VPN
14856          * User Guide</i>.</p><p><h3>See Also:</h3>   <a
14857          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVpnConnections">AWS
14858          * API Reference</a></p>
14859          *
14860          * returns a future to the operation so that it can be executed in parallel to other requests.
14861          */
14862         virtual Model::DescribeVpnConnectionsOutcomeCallable DescribeVpnConnectionsCallable(const Model::DescribeVpnConnectionsRequest& request) const;
14863 
14864         /**
14865          * <p>Describes one or more of your VPN connections.</p> <p>For more information,
14866          * see <a href="https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html">Amazon
14867          * Web Services Site-to-Site VPN</a> in the <i>Amazon Web Services Site-to-Site VPN
14868          * User Guide</i>.</p><p><h3>See Also:</h3>   <a
14869          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVpnConnections">AWS
14870          * API Reference</a></p>
14871          *
14872          * Queues the request into a thread executor and triggers associated callback when operation has finished.
14873          */
14874         virtual void DescribeVpnConnectionsAsync(const Model::DescribeVpnConnectionsRequest& request, const DescribeVpnConnectionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
14875 
14876         /**
14877          * <p>Describes one or more of your virtual private gateways.</p> <p>For more
14878          * information, see <a
14879          * href="https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html">Amazon Web
14880          * Services Site-to-Site VPN</a> in the <i>Amazon Web Services Site-to-Site VPN
14881          * User Guide</i>.</p><p><h3>See Also:</h3>   <a
14882          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVpnGateways">AWS
14883          * API Reference</a></p>
14884          */
14885         virtual Model::DescribeVpnGatewaysOutcome DescribeVpnGateways(const Model::DescribeVpnGatewaysRequest& request) const;
14886 
14887         /**
14888          * <p>Describes one or more of your virtual private gateways.</p> <p>For more
14889          * information, see <a
14890          * href="https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html">Amazon Web
14891          * Services Site-to-Site VPN</a> in the <i>Amazon Web Services Site-to-Site VPN
14892          * User Guide</i>.</p><p><h3>See Also:</h3>   <a
14893          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVpnGateways">AWS
14894          * API Reference</a></p>
14895          *
14896          * returns a future to the operation so that it can be executed in parallel to other requests.
14897          */
14898         virtual Model::DescribeVpnGatewaysOutcomeCallable DescribeVpnGatewaysCallable(const Model::DescribeVpnGatewaysRequest& request) const;
14899 
14900         /**
14901          * <p>Describes one or more of your virtual private gateways.</p> <p>For more
14902          * information, see <a
14903          * href="https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html">Amazon Web
14904          * Services Site-to-Site VPN</a> in the <i>Amazon Web Services Site-to-Site VPN
14905          * User Guide</i>.</p><p><h3>See Also:</h3>   <a
14906          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVpnGateways">AWS
14907          * API Reference</a></p>
14908          *
14909          * Queues the request into a thread executor and triggers associated callback when operation has finished.
14910          */
14911         virtual void DescribeVpnGatewaysAsync(const Model::DescribeVpnGatewaysRequest& request, const DescribeVpnGatewaysResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
14912 
14913         /**
14914          * <p>Unlinks (detaches) a linked EC2-Classic instance from a VPC. After the
14915          * instance has been unlinked, the VPC security groups are no longer associated
14916          * with it. An instance is automatically unlinked from a VPC when it's
14917          * stopped.</p><p><h3>See Also:</h3>   <a
14918          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DetachClassicLinkVpc">AWS
14919          * API Reference</a></p>
14920          */
14921         virtual Model::DetachClassicLinkVpcOutcome DetachClassicLinkVpc(const Model::DetachClassicLinkVpcRequest& request) const;
14922 
14923         /**
14924          * <p>Unlinks (detaches) a linked EC2-Classic instance from a VPC. After the
14925          * instance has been unlinked, the VPC security groups are no longer associated
14926          * with it. An instance is automatically unlinked from a VPC when it's
14927          * stopped.</p><p><h3>See Also:</h3>   <a
14928          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DetachClassicLinkVpc">AWS
14929          * API Reference</a></p>
14930          *
14931          * returns a future to the operation so that it can be executed in parallel to other requests.
14932          */
14933         virtual Model::DetachClassicLinkVpcOutcomeCallable DetachClassicLinkVpcCallable(const Model::DetachClassicLinkVpcRequest& request) const;
14934 
14935         /**
14936          * <p>Unlinks (detaches) a linked EC2-Classic instance from a VPC. After the
14937          * instance has been unlinked, the VPC security groups are no longer associated
14938          * with it. An instance is automatically unlinked from a VPC when it's
14939          * stopped.</p><p><h3>See Also:</h3>   <a
14940          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DetachClassicLinkVpc">AWS
14941          * API Reference</a></p>
14942          *
14943          * Queues the request into a thread executor and triggers associated callback when operation has finished.
14944          */
14945         virtual void DetachClassicLinkVpcAsync(const Model::DetachClassicLinkVpcRequest& request, const DetachClassicLinkVpcResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
14946 
14947         /**
14948          * <p>Detaches an internet gateway from a VPC, disabling connectivity between the
14949          * internet and the VPC. The VPC must not contain any running instances with
14950          * Elastic IP addresses or public IPv4 addresses.</p><p><h3>See Also:</h3>   <a
14951          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DetachInternetGateway">AWS
14952          * API Reference</a></p>
14953          */
14954         virtual Model::DetachInternetGatewayOutcome DetachInternetGateway(const Model::DetachInternetGatewayRequest& request) const;
14955 
14956         /**
14957          * <p>Detaches an internet gateway from a VPC, disabling connectivity between the
14958          * internet and the VPC. The VPC must not contain any running instances with
14959          * Elastic IP addresses or public IPv4 addresses.</p><p><h3>See Also:</h3>   <a
14960          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DetachInternetGateway">AWS
14961          * API Reference</a></p>
14962          *
14963          * returns a future to the operation so that it can be executed in parallel to other requests.
14964          */
14965         virtual Model::DetachInternetGatewayOutcomeCallable DetachInternetGatewayCallable(const Model::DetachInternetGatewayRequest& request) const;
14966 
14967         /**
14968          * <p>Detaches an internet gateway from a VPC, disabling connectivity between the
14969          * internet and the VPC. The VPC must not contain any running instances with
14970          * Elastic IP addresses or public IPv4 addresses.</p><p><h3>See Also:</h3>   <a
14971          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DetachInternetGateway">AWS
14972          * API Reference</a></p>
14973          *
14974          * Queues the request into a thread executor and triggers associated callback when operation has finished.
14975          */
14976         virtual void DetachInternetGatewayAsync(const Model::DetachInternetGatewayRequest& request, const DetachInternetGatewayResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
14977 
14978         /**
14979          * <p>Detaches a network interface from an instance.</p><p><h3>See Also:</h3>   <a
14980          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DetachNetworkInterface">AWS
14981          * API Reference</a></p>
14982          */
14983         virtual Model::DetachNetworkInterfaceOutcome DetachNetworkInterface(const Model::DetachNetworkInterfaceRequest& request) const;
14984 
14985         /**
14986          * <p>Detaches a network interface from an instance.</p><p><h3>See Also:</h3>   <a
14987          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DetachNetworkInterface">AWS
14988          * API Reference</a></p>
14989          *
14990          * returns a future to the operation so that it can be executed in parallel to other requests.
14991          */
14992         virtual Model::DetachNetworkInterfaceOutcomeCallable DetachNetworkInterfaceCallable(const Model::DetachNetworkInterfaceRequest& request) const;
14993 
14994         /**
14995          * <p>Detaches a network interface from an instance.</p><p><h3>See Also:</h3>   <a
14996          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DetachNetworkInterface">AWS
14997          * API Reference</a></p>
14998          *
14999          * Queues the request into a thread executor and triggers associated callback when operation has finished.
15000          */
15001         virtual void DetachNetworkInterfaceAsync(const Model::DetachNetworkInterfaceRequest& request, const DetachNetworkInterfaceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
15002 
15003         /**
15004          * <p>Detaches an EBS volume from an instance. Make sure to unmount any file
15005          * systems on the device within your operating system before detaching the volume.
15006          * Failure to do so can result in the volume becoming stuck in the
15007          * <code>busy</code> state while detaching. If this happens, detachment can be
15008          * delayed indefinitely until you unmount the volume, force detachment, reboot the
15009          * instance, or all three. If an EBS volume is the root device of an instance, it
15010          * can't be detached while the instance is running. To detach the root volume, stop
15011          * the instance first.</p> <p>When a volume with an Amazon Web Services Marketplace
15012          * product code is detached from an instance, the product code is no longer
15013          * associated with the instance.</p> <p>For more information, see <a
15014          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-detaching-volume.html">Detach
15015          * an Amazon EBS volume</a> in the <i>Amazon Elastic Compute Cloud User
15016          * Guide</i>.</p><p><h3>See Also:</h3>   <a
15017          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DetachVolume">AWS
15018          * API Reference</a></p>
15019          */
15020         virtual Model::DetachVolumeOutcome DetachVolume(const Model::DetachVolumeRequest& request) const;
15021 
15022         /**
15023          * <p>Detaches an EBS volume from an instance. Make sure to unmount any file
15024          * systems on the device within your operating system before detaching the volume.
15025          * Failure to do so can result in the volume becoming stuck in the
15026          * <code>busy</code> state while detaching. If this happens, detachment can be
15027          * delayed indefinitely until you unmount the volume, force detachment, reboot the
15028          * instance, or all three. If an EBS volume is the root device of an instance, it
15029          * can't be detached while the instance is running. To detach the root volume, stop
15030          * the instance first.</p> <p>When a volume with an Amazon Web Services Marketplace
15031          * product code is detached from an instance, the product code is no longer
15032          * associated with the instance.</p> <p>For more information, see <a
15033          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-detaching-volume.html">Detach
15034          * an Amazon EBS volume</a> in the <i>Amazon Elastic Compute Cloud User
15035          * Guide</i>.</p><p><h3>See Also:</h3>   <a
15036          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DetachVolume">AWS
15037          * API Reference</a></p>
15038          *
15039          * returns a future to the operation so that it can be executed in parallel to other requests.
15040          */
15041         virtual Model::DetachVolumeOutcomeCallable DetachVolumeCallable(const Model::DetachVolumeRequest& request) const;
15042 
15043         /**
15044          * <p>Detaches an EBS volume from an instance. Make sure to unmount any file
15045          * systems on the device within your operating system before detaching the volume.
15046          * Failure to do so can result in the volume becoming stuck in the
15047          * <code>busy</code> state while detaching. If this happens, detachment can be
15048          * delayed indefinitely until you unmount the volume, force detachment, reboot the
15049          * instance, or all three. If an EBS volume is the root device of an instance, it
15050          * can't be detached while the instance is running. To detach the root volume, stop
15051          * the instance first.</p> <p>When a volume with an Amazon Web Services Marketplace
15052          * product code is detached from an instance, the product code is no longer
15053          * associated with the instance.</p> <p>For more information, see <a
15054          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-detaching-volume.html">Detach
15055          * an Amazon EBS volume</a> in the <i>Amazon Elastic Compute Cloud User
15056          * Guide</i>.</p><p><h3>See Also:</h3>   <a
15057          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DetachVolume">AWS
15058          * API Reference</a></p>
15059          *
15060          * Queues the request into a thread executor and triggers associated callback when operation has finished.
15061          */
15062         virtual void DetachVolumeAsync(const Model::DetachVolumeRequest& request, const DetachVolumeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
15063 
15064         /**
15065          * <p>Detaches a virtual private gateway from a VPC. You do this if you're planning
15066          * to turn off the VPC and not use it anymore. You can confirm a virtual private
15067          * gateway has been completely detached from a VPC by describing the virtual
15068          * private gateway (any attachments to the virtual private gateway are also
15069          * described).</p> <p>You must wait for the attachment's state to switch to
15070          * <code>detached</code> before you can delete the VPC or attach a different VPC to
15071          * the virtual private gateway.</p><p><h3>See Also:</h3>   <a
15072          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DetachVpnGateway">AWS
15073          * API Reference</a></p>
15074          */
15075         virtual Model::DetachVpnGatewayOutcome DetachVpnGateway(const Model::DetachVpnGatewayRequest& request) const;
15076 
15077         /**
15078          * <p>Detaches a virtual private gateway from a VPC. You do this if you're planning
15079          * to turn off the VPC and not use it anymore. You can confirm a virtual private
15080          * gateway has been completely detached from a VPC by describing the virtual
15081          * private gateway (any attachments to the virtual private gateway are also
15082          * described).</p> <p>You must wait for the attachment's state to switch to
15083          * <code>detached</code> before you can delete the VPC or attach a different VPC to
15084          * the virtual private gateway.</p><p><h3>See Also:</h3>   <a
15085          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DetachVpnGateway">AWS
15086          * API Reference</a></p>
15087          *
15088          * returns a future to the operation so that it can be executed in parallel to other requests.
15089          */
15090         virtual Model::DetachVpnGatewayOutcomeCallable DetachVpnGatewayCallable(const Model::DetachVpnGatewayRequest& request) const;
15091 
15092         /**
15093          * <p>Detaches a virtual private gateway from a VPC. You do this if you're planning
15094          * to turn off the VPC and not use it anymore. You can confirm a virtual private
15095          * gateway has been completely detached from a VPC by describing the virtual
15096          * private gateway (any attachments to the virtual private gateway are also
15097          * described).</p> <p>You must wait for the attachment's state to switch to
15098          * <code>detached</code> before you can delete the VPC or attach a different VPC to
15099          * the virtual private gateway.</p><p><h3>See Also:</h3>   <a
15100          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DetachVpnGateway">AWS
15101          * API Reference</a></p>
15102          *
15103          * Queues the request into a thread executor and triggers associated callback when operation has finished.
15104          */
15105         virtual void DetachVpnGatewayAsync(const Model::DetachVpnGatewayRequest& request, const DetachVpnGatewayResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
15106 
15107         /**
15108          * <p>Disables EBS encryption by default for your account in the current
15109          * Region.</p> <p>After you disable encryption by default, you can still create
15110          * encrypted volumes by enabling encryption when you create each volume.</p>
15111          * <p>Disabling encryption by default does not change the encryption status of your
15112          * existing volumes.</p> <p>For more information, see <a
15113          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html">Amazon
15114          * EBS encryption</a> in the <i>Amazon Elastic Compute Cloud User
15115          * Guide</i>.</p><p><h3>See Also:</h3>   <a
15116          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisableEbsEncryptionByDefault">AWS
15117          * API Reference</a></p>
15118          */
15119         virtual Model::DisableEbsEncryptionByDefaultOutcome DisableEbsEncryptionByDefault(const Model::DisableEbsEncryptionByDefaultRequest& request) const;
15120 
15121         /**
15122          * <p>Disables EBS encryption by default for your account in the current
15123          * Region.</p> <p>After you disable encryption by default, you can still create
15124          * encrypted volumes by enabling encryption when you create each volume.</p>
15125          * <p>Disabling encryption by default does not change the encryption status of your
15126          * existing volumes.</p> <p>For more information, see <a
15127          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html">Amazon
15128          * EBS encryption</a> in the <i>Amazon Elastic Compute Cloud User
15129          * Guide</i>.</p><p><h3>See Also:</h3>   <a
15130          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisableEbsEncryptionByDefault">AWS
15131          * API Reference</a></p>
15132          *
15133          * returns a future to the operation so that it can be executed in parallel to other requests.
15134          */
15135         virtual Model::DisableEbsEncryptionByDefaultOutcomeCallable DisableEbsEncryptionByDefaultCallable(const Model::DisableEbsEncryptionByDefaultRequest& request) const;
15136 
15137         /**
15138          * <p>Disables EBS encryption by default for your account in the current
15139          * Region.</p> <p>After you disable encryption by default, you can still create
15140          * encrypted volumes by enabling encryption when you create each volume.</p>
15141          * <p>Disabling encryption by default does not change the encryption status of your
15142          * existing volumes.</p> <p>For more information, see <a
15143          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html">Amazon
15144          * EBS encryption</a> in the <i>Amazon Elastic Compute Cloud User
15145          * Guide</i>.</p><p><h3>See Also:</h3>   <a
15146          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisableEbsEncryptionByDefault">AWS
15147          * API Reference</a></p>
15148          *
15149          * Queues the request into a thread executor and triggers associated callback when operation has finished.
15150          */
15151         virtual void DisableEbsEncryptionByDefaultAsync(const Model::DisableEbsEncryptionByDefaultRequest& request, const DisableEbsEncryptionByDefaultResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
15152 
15153         /**
15154          * <p>Disables fast snapshot restores for the specified snapshots in the specified
15155          * Availability Zones.</p><p><h3>See Also:</h3>   <a
15156          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisableFastSnapshotRestores">AWS
15157          * API Reference</a></p>
15158          */
15159         virtual Model::DisableFastSnapshotRestoresOutcome DisableFastSnapshotRestores(const Model::DisableFastSnapshotRestoresRequest& request) const;
15160 
15161         /**
15162          * <p>Disables fast snapshot restores for the specified snapshots in the specified
15163          * Availability Zones.</p><p><h3>See Also:</h3>   <a
15164          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisableFastSnapshotRestores">AWS
15165          * API Reference</a></p>
15166          *
15167          * returns a future to the operation so that it can be executed in parallel to other requests.
15168          */
15169         virtual Model::DisableFastSnapshotRestoresOutcomeCallable DisableFastSnapshotRestoresCallable(const Model::DisableFastSnapshotRestoresRequest& request) const;
15170 
15171         /**
15172          * <p>Disables fast snapshot restores for the specified snapshots in the specified
15173          * Availability Zones.</p><p><h3>See Also:</h3>   <a
15174          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisableFastSnapshotRestores">AWS
15175          * API Reference</a></p>
15176          *
15177          * Queues the request into a thread executor and triggers associated callback when operation has finished.
15178          */
15179         virtual void DisableFastSnapshotRestoresAsync(const Model::DisableFastSnapshotRestoresRequest& request, const DisableFastSnapshotRestoresResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
15180 
15181         /**
15182          * <p>Cancels the deprecation of the specified AMI.</p> <p>For more information,
15183          * see <a
15184          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-deprecate.html">Deprecate
15185          * an AMI</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p><p><h3>See
15186          * Also:</h3>   <a
15187          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisableImageDeprecation">AWS
15188          * API Reference</a></p>
15189          */
15190         virtual Model::DisableImageDeprecationOutcome DisableImageDeprecation(const Model::DisableImageDeprecationRequest& request) const;
15191 
15192         /**
15193          * <p>Cancels the deprecation of the specified AMI.</p> <p>For more information,
15194          * see <a
15195          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-deprecate.html">Deprecate
15196          * an AMI</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p><p><h3>See
15197          * Also:</h3>   <a
15198          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisableImageDeprecation">AWS
15199          * API Reference</a></p>
15200          *
15201          * returns a future to the operation so that it can be executed in parallel to other requests.
15202          */
15203         virtual Model::DisableImageDeprecationOutcomeCallable DisableImageDeprecationCallable(const Model::DisableImageDeprecationRequest& request) const;
15204 
15205         /**
15206          * <p>Cancels the deprecation of the specified AMI.</p> <p>For more information,
15207          * see <a
15208          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-deprecate.html">Deprecate
15209          * an AMI</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p><p><h3>See
15210          * Also:</h3>   <a
15211          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisableImageDeprecation">AWS
15212          * API Reference</a></p>
15213          *
15214          * Queues the request into a thread executor and triggers associated callback when operation has finished.
15215          */
15216         virtual void DisableImageDeprecationAsync(const Model::DisableImageDeprecationRequest& request, const DisableImageDeprecationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
15217 
15218         /**
15219          * <p>Disables access to the EC2 serial console of all instances for your account.
15220          * By default, access to the EC2 serial console is disabled for your account. For
15221          * more information, see <a
15222          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configure-access-to-serial-console.html#serial-console-account-access">Manage
15223          * account access to the EC2 serial console</a> in the <i>Amazon EC2 User
15224          * Guide</i>.</p><p><h3>See Also:</h3>   <a
15225          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisableSerialConsoleAccess">AWS
15226          * API Reference</a></p>
15227          */
15228         virtual Model::DisableSerialConsoleAccessOutcome DisableSerialConsoleAccess(const Model::DisableSerialConsoleAccessRequest& request) const;
15229 
15230         /**
15231          * <p>Disables access to the EC2 serial console of all instances for your account.
15232          * By default, access to the EC2 serial console is disabled for your account. For
15233          * more information, see <a
15234          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configure-access-to-serial-console.html#serial-console-account-access">Manage
15235          * account access to the EC2 serial console</a> in the <i>Amazon EC2 User
15236          * Guide</i>.</p><p><h3>See Also:</h3>   <a
15237          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisableSerialConsoleAccess">AWS
15238          * API Reference</a></p>
15239          *
15240          * returns a future to the operation so that it can be executed in parallel to other requests.
15241          */
15242         virtual Model::DisableSerialConsoleAccessOutcomeCallable DisableSerialConsoleAccessCallable(const Model::DisableSerialConsoleAccessRequest& request) const;
15243 
15244         /**
15245          * <p>Disables access to the EC2 serial console of all instances for your account.
15246          * By default, access to the EC2 serial console is disabled for your account. For
15247          * more information, see <a
15248          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configure-access-to-serial-console.html#serial-console-account-access">Manage
15249          * account access to the EC2 serial console</a> in the <i>Amazon EC2 User
15250          * Guide</i>.</p><p><h3>See Also:</h3>   <a
15251          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisableSerialConsoleAccess">AWS
15252          * API Reference</a></p>
15253          *
15254          * Queues the request into a thread executor and triggers associated callback when operation has finished.
15255          */
15256         virtual void DisableSerialConsoleAccessAsync(const Model::DisableSerialConsoleAccessRequest& request, const DisableSerialConsoleAccessResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
15257 
15258         /**
15259          * <p>Disables the specified resource attachment from propagating routes to the
15260          * specified propagation route table.</p><p><h3>See Also:</h3>   <a
15261          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisableTransitGatewayRouteTablePropagation">AWS
15262          * API Reference</a></p>
15263          */
15264         virtual Model::DisableTransitGatewayRouteTablePropagationOutcome DisableTransitGatewayRouteTablePropagation(const Model::DisableTransitGatewayRouteTablePropagationRequest& request) const;
15265 
15266         /**
15267          * <p>Disables the specified resource attachment from propagating routes to the
15268          * specified propagation route table.</p><p><h3>See Also:</h3>   <a
15269          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisableTransitGatewayRouteTablePropagation">AWS
15270          * API Reference</a></p>
15271          *
15272          * returns a future to the operation so that it can be executed in parallel to other requests.
15273          */
15274         virtual Model::DisableTransitGatewayRouteTablePropagationOutcomeCallable DisableTransitGatewayRouteTablePropagationCallable(const Model::DisableTransitGatewayRouteTablePropagationRequest& request) const;
15275 
15276         /**
15277          * <p>Disables the specified resource attachment from propagating routes to the
15278          * specified propagation route table.</p><p><h3>See Also:</h3>   <a
15279          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisableTransitGatewayRouteTablePropagation">AWS
15280          * API Reference</a></p>
15281          *
15282          * Queues the request into a thread executor and triggers associated callback when operation has finished.
15283          */
15284         virtual void DisableTransitGatewayRouteTablePropagationAsync(const Model::DisableTransitGatewayRouteTablePropagationRequest& request, const DisableTransitGatewayRouteTablePropagationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
15285 
15286         /**
15287          * <p>Disables a virtual private gateway (VGW) from propagating routes to a
15288          * specified route table of a VPC.</p><p><h3>See Also:</h3>   <a
15289          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisableVgwRoutePropagation">AWS
15290          * API Reference</a></p>
15291          */
15292         virtual Model::DisableVgwRoutePropagationOutcome DisableVgwRoutePropagation(const Model::DisableVgwRoutePropagationRequest& request) const;
15293 
15294         /**
15295          * <p>Disables a virtual private gateway (VGW) from propagating routes to a
15296          * specified route table of a VPC.</p><p><h3>See Also:</h3>   <a
15297          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisableVgwRoutePropagation">AWS
15298          * API Reference</a></p>
15299          *
15300          * returns a future to the operation so that it can be executed in parallel to other requests.
15301          */
15302         virtual Model::DisableVgwRoutePropagationOutcomeCallable DisableVgwRoutePropagationCallable(const Model::DisableVgwRoutePropagationRequest& request) const;
15303 
15304         /**
15305          * <p>Disables a virtual private gateway (VGW) from propagating routes to a
15306          * specified route table of a VPC.</p><p><h3>See Also:</h3>   <a
15307          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisableVgwRoutePropagation">AWS
15308          * API Reference</a></p>
15309          *
15310          * Queues the request into a thread executor and triggers associated callback when operation has finished.
15311          */
15312         virtual void DisableVgwRoutePropagationAsync(const Model::DisableVgwRoutePropagationRequest& request, const DisableVgwRoutePropagationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
15313 
15314         /**
15315          * <p>Disables ClassicLink for a VPC. You cannot disable ClassicLink for a VPC that
15316          * has EC2-Classic instances linked to it.</p><p><h3>See Also:</h3>   <a
15317          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisableVpcClassicLink">AWS
15318          * API Reference</a></p>
15319          */
15320         virtual Model::DisableVpcClassicLinkOutcome DisableVpcClassicLink(const Model::DisableVpcClassicLinkRequest& request) const;
15321 
15322         /**
15323          * <p>Disables ClassicLink for a VPC. You cannot disable ClassicLink for a VPC that
15324          * has EC2-Classic instances linked to it.</p><p><h3>See Also:</h3>   <a
15325          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisableVpcClassicLink">AWS
15326          * API Reference</a></p>
15327          *
15328          * returns a future to the operation so that it can be executed in parallel to other requests.
15329          */
15330         virtual Model::DisableVpcClassicLinkOutcomeCallable DisableVpcClassicLinkCallable(const Model::DisableVpcClassicLinkRequest& request) const;
15331 
15332         /**
15333          * <p>Disables ClassicLink for a VPC. You cannot disable ClassicLink for a VPC that
15334          * has EC2-Classic instances linked to it.</p><p><h3>See Also:</h3>   <a
15335          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisableVpcClassicLink">AWS
15336          * API Reference</a></p>
15337          *
15338          * Queues the request into a thread executor and triggers associated callback when operation has finished.
15339          */
15340         virtual void DisableVpcClassicLinkAsync(const Model::DisableVpcClassicLinkRequest& request, const DisableVpcClassicLinkResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
15341 
15342         /**
15343          * <p>Disables ClassicLink DNS support for a VPC. If disabled, DNS hostnames
15344          * resolve to public IP addresses when addressed between a linked EC2-Classic
15345          * instance and instances in the VPC to which it's linked. For more information,
15346          * see <a
15347          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-classiclink.html">ClassicLink</a>
15348          * in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p> <p>You must specify a
15349          * VPC ID in the request.</p><p><h3>See Also:</h3>   <a
15350          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisableVpcClassicLinkDnsSupport">AWS
15351          * API Reference</a></p>
15352          */
15353         virtual Model::DisableVpcClassicLinkDnsSupportOutcome DisableVpcClassicLinkDnsSupport(const Model::DisableVpcClassicLinkDnsSupportRequest& request) const;
15354 
15355         /**
15356          * <p>Disables ClassicLink DNS support for a VPC. If disabled, DNS hostnames
15357          * resolve to public IP addresses when addressed between a linked EC2-Classic
15358          * instance and instances in the VPC to which it's linked. For more information,
15359          * see <a
15360          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-classiclink.html">ClassicLink</a>
15361          * in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p> <p>You must specify a
15362          * VPC ID in the request.</p><p><h3>See Also:</h3>   <a
15363          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisableVpcClassicLinkDnsSupport">AWS
15364          * API Reference</a></p>
15365          *
15366          * returns a future to the operation so that it can be executed in parallel to other requests.
15367          */
15368         virtual Model::DisableVpcClassicLinkDnsSupportOutcomeCallable DisableVpcClassicLinkDnsSupportCallable(const Model::DisableVpcClassicLinkDnsSupportRequest& request) const;
15369 
15370         /**
15371          * <p>Disables ClassicLink DNS support for a VPC. If disabled, DNS hostnames
15372          * resolve to public IP addresses when addressed between a linked EC2-Classic
15373          * instance and instances in the VPC to which it's linked. For more information,
15374          * see <a
15375          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-classiclink.html">ClassicLink</a>
15376          * in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p> <p>You must specify a
15377          * VPC ID in the request.</p><p><h3>See Also:</h3>   <a
15378          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisableVpcClassicLinkDnsSupport">AWS
15379          * API Reference</a></p>
15380          *
15381          * Queues the request into a thread executor and triggers associated callback when operation has finished.
15382          */
15383         virtual void DisableVpcClassicLinkDnsSupportAsync(const Model::DisableVpcClassicLinkDnsSupportRequest& request, const DisableVpcClassicLinkDnsSupportResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
15384 
15385         /**
15386          * <p>Disassociates an Elastic IP address from the instance or network interface
15387          * it's associated with.</p> <p>An Elastic IP address is for use in either the
15388          * EC2-Classic platform or in a VPC. For more information, see <a
15389          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html">Elastic
15390          * IP Addresses</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>
15391          * <p>This is an idempotent operation. If you perform the operation more than once,
15392          * Amazon EC2 doesn't return an error.</p><p><h3>See Also:</h3>   <a
15393          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisassociateAddress">AWS
15394          * API Reference</a></p>
15395          */
15396         virtual Model::DisassociateAddressOutcome DisassociateAddress(const Model::DisassociateAddressRequest& request) const;
15397 
15398         /**
15399          * <p>Disassociates an Elastic IP address from the instance or network interface
15400          * it's associated with.</p> <p>An Elastic IP address is for use in either the
15401          * EC2-Classic platform or in a VPC. For more information, see <a
15402          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html">Elastic
15403          * IP Addresses</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>
15404          * <p>This is an idempotent operation. If you perform the operation more than once,
15405          * Amazon EC2 doesn't return an error.</p><p><h3>See Also:</h3>   <a
15406          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisassociateAddress">AWS
15407          * API Reference</a></p>
15408          *
15409          * returns a future to the operation so that it can be executed in parallel to other requests.
15410          */
15411         virtual Model::DisassociateAddressOutcomeCallable DisassociateAddressCallable(const Model::DisassociateAddressRequest& request) const;
15412 
15413         /**
15414          * <p>Disassociates an Elastic IP address from the instance or network interface
15415          * it's associated with.</p> <p>An Elastic IP address is for use in either the
15416          * EC2-Classic platform or in a VPC. For more information, see <a
15417          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html">Elastic
15418          * IP Addresses</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>
15419          * <p>This is an idempotent operation. If you perform the operation more than once,
15420          * Amazon EC2 doesn't return an error.</p><p><h3>See Also:</h3>   <a
15421          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisassociateAddress">AWS
15422          * API Reference</a></p>
15423          *
15424          * Queues the request into a thread executor and triggers associated callback when operation has finished.
15425          */
15426         virtual void DisassociateAddressAsync(const Model::DisassociateAddressRequest& request, const DisassociateAddressResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
15427 
15428         /**
15429          * <p>Disassociates a target network from the specified Client VPN endpoint. When
15430          * you disassociate the last target network from a Client VPN, the following
15431          * happens:</p> <ul> <li> <p>The route that was automatically added for the VPC is
15432          * deleted</p> </li> <li> <p>All active client connections are terminated</p> </li>
15433          * <li> <p>New client connections are disallowed</p> </li> <li> <p>The Client VPN
15434          * endpoint's status changes to <code>pending-associate</code> </p> </li>
15435          * </ul><p><h3>See Also:</h3>   <a
15436          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisassociateClientVpnTargetNetwork">AWS
15437          * API Reference</a></p>
15438          */
15439         virtual Model::DisassociateClientVpnTargetNetworkOutcome DisassociateClientVpnTargetNetwork(const Model::DisassociateClientVpnTargetNetworkRequest& request) const;
15440 
15441         /**
15442          * <p>Disassociates a target network from the specified Client VPN endpoint. When
15443          * you disassociate the last target network from a Client VPN, the following
15444          * happens:</p> <ul> <li> <p>The route that was automatically added for the VPC is
15445          * deleted</p> </li> <li> <p>All active client connections are terminated</p> </li>
15446          * <li> <p>New client connections are disallowed</p> </li> <li> <p>The Client VPN
15447          * endpoint's status changes to <code>pending-associate</code> </p> </li>
15448          * </ul><p><h3>See Also:</h3>   <a
15449          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisassociateClientVpnTargetNetwork">AWS
15450          * API Reference</a></p>
15451          *
15452          * returns a future to the operation so that it can be executed in parallel to other requests.
15453          */
15454         virtual Model::DisassociateClientVpnTargetNetworkOutcomeCallable DisassociateClientVpnTargetNetworkCallable(const Model::DisassociateClientVpnTargetNetworkRequest& request) const;
15455 
15456         /**
15457          * <p>Disassociates a target network from the specified Client VPN endpoint. When
15458          * you disassociate the last target network from a Client VPN, the following
15459          * happens:</p> <ul> <li> <p>The route that was automatically added for the VPC is
15460          * deleted</p> </li> <li> <p>All active client connections are terminated</p> </li>
15461          * <li> <p>New client connections are disallowed</p> </li> <li> <p>The Client VPN
15462          * endpoint's status changes to <code>pending-associate</code> </p> </li>
15463          * </ul><p><h3>See Also:</h3>   <a
15464          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisassociateClientVpnTargetNetwork">AWS
15465          * API Reference</a></p>
15466          *
15467          * Queues the request into a thread executor and triggers associated callback when operation has finished.
15468          */
15469         virtual void DisassociateClientVpnTargetNetworkAsync(const Model::DisassociateClientVpnTargetNetworkRequest& request, const DisassociateClientVpnTargetNetworkResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
15470 
15471         /**
15472          * <p>Disassociates an IAM role from an Certificate Manager (ACM) certificate.
15473          * Disassociating an IAM role from an ACM certificate removes the Amazon S3 object
15474          * that contains the certificate, certificate chain, and encrypted private key from
15475          * the Amazon S3 bucket. It also revokes the IAM role's permission to use the KMS
15476          * key used to encrypt the private key. This effectively revokes the role's
15477          * permission to use the certificate.</p><p><h3>See Also:</h3>   <a
15478          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisassociateEnclaveCertificateIamRole">AWS
15479          * API Reference</a></p>
15480          */
15481         virtual Model::DisassociateEnclaveCertificateIamRoleOutcome DisassociateEnclaveCertificateIamRole(const Model::DisassociateEnclaveCertificateIamRoleRequest& request) const;
15482 
15483         /**
15484          * <p>Disassociates an IAM role from an Certificate Manager (ACM) certificate.
15485          * Disassociating an IAM role from an ACM certificate removes the Amazon S3 object
15486          * that contains the certificate, certificate chain, and encrypted private key from
15487          * the Amazon S3 bucket. It also revokes the IAM role's permission to use the KMS
15488          * key used to encrypt the private key. This effectively revokes the role's
15489          * permission to use the certificate.</p><p><h3>See Also:</h3>   <a
15490          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisassociateEnclaveCertificateIamRole">AWS
15491          * API Reference</a></p>
15492          *
15493          * returns a future to the operation so that it can be executed in parallel to other requests.
15494          */
15495         virtual Model::DisassociateEnclaveCertificateIamRoleOutcomeCallable DisassociateEnclaveCertificateIamRoleCallable(const Model::DisassociateEnclaveCertificateIamRoleRequest& request) const;
15496 
15497         /**
15498          * <p>Disassociates an IAM role from an Certificate Manager (ACM) certificate.
15499          * Disassociating an IAM role from an ACM certificate removes the Amazon S3 object
15500          * that contains the certificate, certificate chain, and encrypted private key from
15501          * the Amazon S3 bucket. It also revokes the IAM role's permission to use the KMS
15502          * key used to encrypt the private key. This effectively revokes the role's
15503          * permission to use the certificate.</p><p><h3>See Also:</h3>   <a
15504          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisassociateEnclaveCertificateIamRole">AWS
15505          * API Reference</a></p>
15506          *
15507          * Queues the request into a thread executor and triggers associated callback when operation has finished.
15508          */
15509         virtual void DisassociateEnclaveCertificateIamRoleAsync(const Model::DisassociateEnclaveCertificateIamRoleRequest& request, const DisassociateEnclaveCertificateIamRoleResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
15510 
15511         /**
15512          * <p>Disassociates an IAM instance profile from a running or stopped instance.</p>
15513          * <p>Use <a>DescribeIamInstanceProfileAssociations</a> to get the association
15514          * ID.</p><p><h3>See Also:</h3>   <a
15515          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisassociateIamInstanceProfile">AWS
15516          * API Reference</a></p>
15517          */
15518         virtual Model::DisassociateIamInstanceProfileOutcome DisassociateIamInstanceProfile(const Model::DisassociateIamInstanceProfileRequest& request) const;
15519 
15520         /**
15521          * <p>Disassociates an IAM instance profile from a running or stopped instance.</p>
15522          * <p>Use <a>DescribeIamInstanceProfileAssociations</a> to get the association
15523          * ID.</p><p><h3>See Also:</h3>   <a
15524          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisassociateIamInstanceProfile">AWS
15525          * API Reference</a></p>
15526          *
15527          * returns a future to the operation so that it can be executed in parallel to other requests.
15528          */
15529         virtual Model::DisassociateIamInstanceProfileOutcomeCallable DisassociateIamInstanceProfileCallable(const Model::DisassociateIamInstanceProfileRequest& request) const;
15530 
15531         /**
15532          * <p>Disassociates an IAM instance profile from a running or stopped instance.</p>
15533          * <p>Use <a>DescribeIamInstanceProfileAssociations</a> to get the association
15534          * ID.</p><p><h3>See Also:</h3>   <a
15535          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisassociateIamInstanceProfile">AWS
15536          * API Reference</a></p>
15537          *
15538          * Queues the request into a thread executor and triggers associated callback when operation has finished.
15539          */
15540         virtual void DisassociateIamInstanceProfileAsync(const Model::DisassociateIamInstanceProfileRequest& request, const DisassociateIamInstanceProfileResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
15541 
15542         /**
15543          * <p>Disassociates one or more targets from an event window.</p> <p>For more
15544          * information, see <a
15545          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/event-windows.html">Define
15546          * event windows for scheduled events</a> in the <i>Amazon EC2 User
15547          * Guide</i>.</p><p><h3>See Also:</h3>   <a
15548          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisassociateInstanceEventWindow">AWS
15549          * API Reference</a></p>
15550          */
15551         virtual Model::DisassociateInstanceEventWindowOutcome DisassociateInstanceEventWindow(const Model::DisassociateInstanceEventWindowRequest& request) const;
15552 
15553         /**
15554          * <p>Disassociates one or more targets from an event window.</p> <p>For more
15555          * information, see <a
15556          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/event-windows.html">Define
15557          * event windows for scheduled events</a> in the <i>Amazon EC2 User
15558          * Guide</i>.</p><p><h3>See Also:</h3>   <a
15559          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisassociateInstanceEventWindow">AWS
15560          * API Reference</a></p>
15561          *
15562          * returns a future to the operation so that it can be executed in parallel to other requests.
15563          */
15564         virtual Model::DisassociateInstanceEventWindowOutcomeCallable DisassociateInstanceEventWindowCallable(const Model::DisassociateInstanceEventWindowRequest& request) const;
15565 
15566         /**
15567          * <p>Disassociates one or more targets from an event window.</p> <p>For more
15568          * information, see <a
15569          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/event-windows.html">Define
15570          * event windows for scheduled events</a> in the <i>Amazon EC2 User
15571          * Guide</i>.</p><p><h3>See Also:</h3>   <a
15572          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisassociateInstanceEventWindow">AWS
15573          * API Reference</a></p>
15574          *
15575          * Queues the request into a thread executor and triggers associated callback when operation has finished.
15576          */
15577         virtual void DisassociateInstanceEventWindowAsync(const Model::DisassociateInstanceEventWindowRequest& request, const DisassociateInstanceEventWindowResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
15578 
15579         /**
15580          * <p>Disassociates a subnet or gateway from a route table.</p> <p>After you
15581          * perform this action, the subnet no longer uses the routes in the route table.
15582          * Instead, it uses the routes in the VPC's main route table. For more information
15583          * about route tables, see <a
15584          * href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html">Route
15585          * tables</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.</p><p><h3>See
15586          * Also:</h3>   <a
15587          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisassociateRouteTable">AWS
15588          * API Reference</a></p>
15589          */
15590         virtual Model::DisassociateRouteTableOutcome DisassociateRouteTable(const Model::DisassociateRouteTableRequest& request) const;
15591 
15592         /**
15593          * <p>Disassociates a subnet or gateway from a route table.</p> <p>After you
15594          * perform this action, the subnet no longer uses the routes in the route table.
15595          * Instead, it uses the routes in the VPC's main route table. For more information
15596          * about route tables, see <a
15597          * href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html">Route
15598          * tables</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.</p><p><h3>See
15599          * Also:</h3>   <a
15600          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisassociateRouteTable">AWS
15601          * API Reference</a></p>
15602          *
15603          * returns a future to the operation so that it can be executed in parallel to other requests.
15604          */
15605         virtual Model::DisassociateRouteTableOutcomeCallable DisassociateRouteTableCallable(const Model::DisassociateRouteTableRequest& request) const;
15606 
15607         /**
15608          * <p>Disassociates a subnet or gateway from a route table.</p> <p>After you
15609          * perform this action, the subnet no longer uses the routes in the route table.
15610          * Instead, it uses the routes in the VPC's main route table. For more information
15611          * about route tables, see <a
15612          * href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html">Route
15613          * tables</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.</p><p><h3>See
15614          * Also:</h3>   <a
15615          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisassociateRouteTable">AWS
15616          * API Reference</a></p>
15617          *
15618          * Queues the request into a thread executor and triggers associated callback when operation has finished.
15619          */
15620         virtual void DisassociateRouteTableAsync(const Model::DisassociateRouteTableRequest& request, const DisassociateRouteTableResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
15621 
15622         /**
15623          * <p>Disassociates a CIDR block from a subnet. Currently, you can disassociate an
15624          * IPv6 CIDR block only. You must detach or delete all gateways and resources that
15625          * are associated with the CIDR block before you can disassociate it.
15626          * </p><p><h3>See Also:</h3>   <a
15627          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisassociateSubnetCidrBlock">AWS
15628          * API Reference</a></p>
15629          */
15630         virtual Model::DisassociateSubnetCidrBlockOutcome DisassociateSubnetCidrBlock(const Model::DisassociateSubnetCidrBlockRequest& request) const;
15631 
15632         /**
15633          * <p>Disassociates a CIDR block from a subnet. Currently, you can disassociate an
15634          * IPv6 CIDR block only. You must detach or delete all gateways and resources that
15635          * are associated with the CIDR block before you can disassociate it.
15636          * </p><p><h3>See Also:</h3>   <a
15637          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisassociateSubnetCidrBlock">AWS
15638          * API Reference</a></p>
15639          *
15640          * returns a future to the operation so that it can be executed in parallel to other requests.
15641          */
15642         virtual Model::DisassociateSubnetCidrBlockOutcomeCallable DisassociateSubnetCidrBlockCallable(const Model::DisassociateSubnetCidrBlockRequest& request) const;
15643 
15644         /**
15645          * <p>Disassociates a CIDR block from a subnet. Currently, you can disassociate an
15646          * IPv6 CIDR block only. You must detach or delete all gateways and resources that
15647          * are associated with the CIDR block before you can disassociate it.
15648          * </p><p><h3>See Also:</h3>   <a
15649          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisassociateSubnetCidrBlock">AWS
15650          * API Reference</a></p>
15651          *
15652          * Queues the request into a thread executor and triggers associated callback when operation has finished.
15653          */
15654         virtual void DisassociateSubnetCidrBlockAsync(const Model::DisassociateSubnetCidrBlockRequest& request, const DisassociateSubnetCidrBlockResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
15655 
15656         /**
15657          * <p>Disassociates the specified subnets from the transit gateway multicast
15658          * domain. </p><p><h3>See Also:</h3>   <a
15659          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisassociateTransitGatewayMulticastDomain">AWS
15660          * API Reference</a></p>
15661          */
15662         virtual Model::DisassociateTransitGatewayMulticastDomainOutcome DisassociateTransitGatewayMulticastDomain(const Model::DisassociateTransitGatewayMulticastDomainRequest& request) const;
15663 
15664         /**
15665          * <p>Disassociates the specified subnets from the transit gateway multicast
15666          * domain. </p><p><h3>See Also:</h3>   <a
15667          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisassociateTransitGatewayMulticastDomain">AWS
15668          * API Reference</a></p>
15669          *
15670          * returns a future to the operation so that it can be executed in parallel to other requests.
15671          */
15672         virtual Model::DisassociateTransitGatewayMulticastDomainOutcomeCallable DisassociateTransitGatewayMulticastDomainCallable(const Model::DisassociateTransitGatewayMulticastDomainRequest& request) const;
15673 
15674         /**
15675          * <p>Disassociates the specified subnets from the transit gateway multicast
15676          * domain. </p><p><h3>See Also:</h3>   <a
15677          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisassociateTransitGatewayMulticastDomain">AWS
15678          * API Reference</a></p>
15679          *
15680          * Queues the request into a thread executor and triggers associated callback when operation has finished.
15681          */
15682         virtual void DisassociateTransitGatewayMulticastDomainAsync(const Model::DisassociateTransitGatewayMulticastDomainRequest& request, const DisassociateTransitGatewayMulticastDomainResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
15683 
15684         /**
15685          * <p>Disassociates a resource attachment from a transit gateway route
15686          * table.</p><p><h3>See Also:</h3>   <a
15687          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisassociateTransitGatewayRouteTable">AWS
15688          * API Reference</a></p>
15689          */
15690         virtual Model::DisassociateTransitGatewayRouteTableOutcome DisassociateTransitGatewayRouteTable(const Model::DisassociateTransitGatewayRouteTableRequest& request) const;
15691 
15692         /**
15693          * <p>Disassociates a resource attachment from a transit gateway route
15694          * table.</p><p><h3>See Also:</h3>   <a
15695          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisassociateTransitGatewayRouteTable">AWS
15696          * API Reference</a></p>
15697          *
15698          * returns a future to the operation so that it can be executed in parallel to other requests.
15699          */
15700         virtual Model::DisassociateTransitGatewayRouteTableOutcomeCallable DisassociateTransitGatewayRouteTableCallable(const Model::DisassociateTransitGatewayRouteTableRequest& request) const;
15701 
15702         /**
15703          * <p>Disassociates a resource attachment from a transit gateway route
15704          * table.</p><p><h3>See Also:</h3>   <a
15705          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisassociateTransitGatewayRouteTable">AWS
15706          * API Reference</a></p>
15707          *
15708          * Queues the request into a thread executor and triggers associated callback when operation has finished.
15709          */
15710         virtual void DisassociateTransitGatewayRouteTableAsync(const Model::DisassociateTransitGatewayRouteTableRequest& request, const DisassociateTransitGatewayRouteTableResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
15711 
15712         /**
15713          *  <p>This API action is currently in <b>limited preview only</b>. If you
15714          * are interested in using this feature, contact your account manager.</p>
15715          * <p>Removes an association between a branch network interface with a trunk
15716          * network interface.</p><p><h3>See Also:</h3>   <a
15717          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisassociateTrunkInterface">AWS
15718          * API Reference</a></p>
15719          */
15720         virtual Model::DisassociateTrunkInterfaceOutcome DisassociateTrunkInterface(const Model::DisassociateTrunkInterfaceRequest& request) const;
15721 
15722         /**
15723          *  <p>This API action is currently in <b>limited preview only</b>. If you
15724          * are interested in using this feature, contact your account manager.</p>
15725          * <p>Removes an association between a branch network interface with a trunk
15726          * network interface.</p><p><h3>See Also:</h3>   <a
15727          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisassociateTrunkInterface">AWS
15728          * API Reference</a></p>
15729          *
15730          * returns a future to the operation so that it can be executed in parallel to other requests.
15731          */
15732         virtual Model::DisassociateTrunkInterfaceOutcomeCallable DisassociateTrunkInterfaceCallable(const Model::DisassociateTrunkInterfaceRequest& request) const;
15733 
15734         /**
15735          *  <p>This API action is currently in <b>limited preview only</b>. If you
15736          * are interested in using this feature, contact your account manager.</p>
15737          * <p>Removes an association between a branch network interface with a trunk
15738          * network interface.</p><p><h3>See Also:</h3>   <a
15739          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisassociateTrunkInterface">AWS
15740          * API Reference</a></p>
15741          *
15742          * Queues the request into a thread executor and triggers associated callback when operation has finished.
15743          */
15744         virtual void DisassociateTrunkInterfaceAsync(const Model::DisassociateTrunkInterfaceRequest& request, const DisassociateTrunkInterfaceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
15745 
15746         /**
15747          * <p>Disassociates a CIDR block from a VPC. To disassociate the CIDR block, you
15748          * must specify its association ID. You can get the association ID by using
15749          * <a>DescribeVpcs</a>. You must detach or delete all gateways and resources that
15750          * are associated with the CIDR block before you can disassociate it. </p> <p>You
15751          * cannot disassociate the CIDR block with which you originally created the VPC
15752          * (the primary CIDR block).</p><p><h3>See Also:</h3>   <a
15753          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisassociateVpcCidrBlock">AWS
15754          * API Reference</a></p>
15755          */
15756         virtual Model::DisassociateVpcCidrBlockOutcome DisassociateVpcCidrBlock(const Model::DisassociateVpcCidrBlockRequest& request) const;
15757 
15758         /**
15759          * <p>Disassociates a CIDR block from a VPC. To disassociate the CIDR block, you
15760          * must specify its association ID. You can get the association ID by using
15761          * <a>DescribeVpcs</a>. You must detach or delete all gateways and resources that
15762          * are associated with the CIDR block before you can disassociate it. </p> <p>You
15763          * cannot disassociate the CIDR block with which you originally created the VPC
15764          * (the primary CIDR block).</p><p><h3>See Also:</h3>   <a
15765          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisassociateVpcCidrBlock">AWS
15766          * API Reference</a></p>
15767          *
15768          * returns a future to the operation so that it can be executed in parallel to other requests.
15769          */
15770         virtual Model::DisassociateVpcCidrBlockOutcomeCallable DisassociateVpcCidrBlockCallable(const Model::DisassociateVpcCidrBlockRequest& request) const;
15771 
15772         /**
15773          * <p>Disassociates a CIDR block from a VPC. To disassociate the CIDR block, you
15774          * must specify its association ID. You can get the association ID by using
15775          * <a>DescribeVpcs</a>. You must detach or delete all gateways and resources that
15776          * are associated with the CIDR block before you can disassociate it. </p> <p>You
15777          * cannot disassociate the CIDR block with which you originally created the VPC
15778          * (the primary CIDR block).</p><p><h3>See Also:</h3>   <a
15779          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisassociateVpcCidrBlock">AWS
15780          * API Reference</a></p>
15781          *
15782          * Queues the request into a thread executor and triggers associated callback when operation has finished.
15783          */
15784         virtual void DisassociateVpcCidrBlockAsync(const Model::DisassociateVpcCidrBlockRequest& request, const DisassociateVpcCidrBlockResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
15785 
15786         /**
15787          * <p>Enables EBS encryption by default for your account in the current Region.</p>
15788          * <p>After you enable encryption by default, the EBS volumes that you create are
15789          * always encrypted, either using the default KMS key or the KMS key that you
15790          * specified when you created each volume. For more information, see <a
15791          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html">Amazon
15792          * EBS encryption</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>
15793          * <p>You can specify the default KMS key for encryption by default using
15794          * <a>ModifyEbsDefaultKmsKeyId</a> or <a>ResetEbsDefaultKmsKeyId</a>.</p>
15795          * <p>Enabling encryption by default has no effect on the encryption status of your
15796          * existing volumes.</p> <p>After you enable encryption by default, you can no
15797          * longer launch instances using instance types that do not support encryption. For
15798          * more information, see <a
15799          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#EBSEncryption_supported_instances">Supported
15800          * instance types</a>.</p><p><h3>See Also:</h3>   <a
15801          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/EnableEbsEncryptionByDefault">AWS
15802          * API Reference</a></p>
15803          */
15804         virtual Model::EnableEbsEncryptionByDefaultOutcome EnableEbsEncryptionByDefault(const Model::EnableEbsEncryptionByDefaultRequest& request) const;
15805 
15806         /**
15807          * <p>Enables EBS encryption by default for your account in the current Region.</p>
15808          * <p>After you enable encryption by default, the EBS volumes that you create are
15809          * always encrypted, either using the default KMS key or the KMS key that you
15810          * specified when you created each volume. For more information, see <a
15811          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html">Amazon
15812          * EBS encryption</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>
15813          * <p>You can specify the default KMS key for encryption by default using
15814          * <a>ModifyEbsDefaultKmsKeyId</a> or <a>ResetEbsDefaultKmsKeyId</a>.</p>
15815          * <p>Enabling encryption by default has no effect on the encryption status of your
15816          * existing volumes.</p> <p>After you enable encryption by default, you can no
15817          * longer launch instances using instance types that do not support encryption. For
15818          * more information, see <a
15819          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#EBSEncryption_supported_instances">Supported
15820          * instance types</a>.</p><p><h3>See Also:</h3>   <a
15821          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/EnableEbsEncryptionByDefault">AWS
15822          * API Reference</a></p>
15823          *
15824          * returns a future to the operation so that it can be executed in parallel to other requests.
15825          */
15826         virtual Model::EnableEbsEncryptionByDefaultOutcomeCallable EnableEbsEncryptionByDefaultCallable(const Model::EnableEbsEncryptionByDefaultRequest& request) const;
15827 
15828         /**
15829          * <p>Enables EBS encryption by default for your account in the current Region.</p>
15830          * <p>After you enable encryption by default, the EBS volumes that you create are
15831          * always encrypted, either using the default KMS key or the KMS key that you
15832          * specified when you created each volume. For more information, see <a
15833          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html">Amazon
15834          * EBS encryption</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>
15835          * <p>You can specify the default KMS key for encryption by default using
15836          * <a>ModifyEbsDefaultKmsKeyId</a> or <a>ResetEbsDefaultKmsKeyId</a>.</p>
15837          * <p>Enabling encryption by default has no effect on the encryption status of your
15838          * existing volumes.</p> <p>After you enable encryption by default, you can no
15839          * longer launch instances using instance types that do not support encryption. For
15840          * more information, see <a
15841          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#EBSEncryption_supported_instances">Supported
15842          * instance types</a>.</p><p><h3>See Also:</h3>   <a
15843          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/EnableEbsEncryptionByDefault">AWS
15844          * API Reference</a></p>
15845          *
15846          * Queues the request into a thread executor and triggers associated callback when operation has finished.
15847          */
15848         virtual void EnableEbsEncryptionByDefaultAsync(const Model::EnableEbsEncryptionByDefaultRequest& request, const EnableEbsEncryptionByDefaultResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
15849 
15850         /**
15851          * <p>Enables fast snapshot restores for the specified snapshots in the specified
15852          * Availability Zones.</p> <p>You get the full benefit of fast snapshot restores
15853          * after they enter the <code>enabled</code> state. To get the current state of
15854          * fast snapshot restores, use <a>DescribeFastSnapshotRestores</a>. To disable fast
15855          * snapshot restores, use <a>DisableFastSnapshotRestores</a>.</p> <p>For more
15856          * information, see <a
15857          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-fast-snapshot-restore.html">Amazon
15858          * EBS fast snapshot restore</a> in the <i>Amazon Elastic Compute Cloud User
15859          * Guide</i>.</p><p><h3>See Also:</h3>   <a
15860          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/EnableFastSnapshotRestores">AWS
15861          * API Reference</a></p>
15862          */
15863         virtual Model::EnableFastSnapshotRestoresOutcome EnableFastSnapshotRestores(const Model::EnableFastSnapshotRestoresRequest& request) const;
15864 
15865         /**
15866          * <p>Enables fast snapshot restores for the specified snapshots in the specified
15867          * Availability Zones.</p> <p>You get the full benefit of fast snapshot restores
15868          * after they enter the <code>enabled</code> state. To get the current state of
15869          * fast snapshot restores, use <a>DescribeFastSnapshotRestores</a>. To disable fast
15870          * snapshot restores, use <a>DisableFastSnapshotRestores</a>.</p> <p>For more
15871          * information, see <a
15872          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-fast-snapshot-restore.html">Amazon
15873          * EBS fast snapshot restore</a> in the <i>Amazon Elastic Compute Cloud User
15874          * Guide</i>.</p><p><h3>See Also:</h3>   <a
15875          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/EnableFastSnapshotRestores">AWS
15876          * API Reference</a></p>
15877          *
15878          * returns a future to the operation so that it can be executed in parallel to other requests.
15879          */
15880         virtual Model::EnableFastSnapshotRestoresOutcomeCallable EnableFastSnapshotRestoresCallable(const Model::EnableFastSnapshotRestoresRequest& request) const;
15881 
15882         /**
15883          * <p>Enables fast snapshot restores for the specified snapshots in the specified
15884          * Availability Zones.</p> <p>You get the full benefit of fast snapshot restores
15885          * after they enter the <code>enabled</code> state. To get the current state of
15886          * fast snapshot restores, use <a>DescribeFastSnapshotRestores</a>. To disable fast
15887          * snapshot restores, use <a>DisableFastSnapshotRestores</a>.</p> <p>For more
15888          * information, see <a
15889          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-fast-snapshot-restore.html">Amazon
15890          * EBS fast snapshot restore</a> in the <i>Amazon Elastic Compute Cloud User
15891          * Guide</i>.</p><p><h3>See Also:</h3>   <a
15892          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/EnableFastSnapshotRestores">AWS
15893          * API Reference</a></p>
15894          *
15895          * Queues the request into a thread executor and triggers associated callback when operation has finished.
15896          */
15897         virtual void EnableFastSnapshotRestoresAsync(const Model::EnableFastSnapshotRestoresRequest& request, const EnableFastSnapshotRestoresResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
15898 
15899         /**
15900          * <p>Enables deprecation of the specified AMI at the specified date and time.</p>
15901          * <p>For more information, see <a
15902          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-deprecate.html">Deprecate
15903          * an AMI</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p><p><h3>See
15904          * Also:</h3>   <a
15905          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/EnableImageDeprecation">AWS
15906          * API Reference</a></p>
15907          */
15908         virtual Model::EnableImageDeprecationOutcome EnableImageDeprecation(const Model::EnableImageDeprecationRequest& request) const;
15909 
15910         /**
15911          * <p>Enables deprecation of the specified AMI at the specified date and time.</p>
15912          * <p>For more information, see <a
15913          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-deprecate.html">Deprecate
15914          * an AMI</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p><p><h3>See
15915          * Also:</h3>   <a
15916          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/EnableImageDeprecation">AWS
15917          * API Reference</a></p>
15918          *
15919          * returns a future to the operation so that it can be executed in parallel to other requests.
15920          */
15921         virtual Model::EnableImageDeprecationOutcomeCallable EnableImageDeprecationCallable(const Model::EnableImageDeprecationRequest& request) const;
15922 
15923         /**
15924          * <p>Enables deprecation of the specified AMI at the specified date and time.</p>
15925          * <p>For more information, see <a
15926          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-deprecate.html">Deprecate
15927          * an AMI</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p><p><h3>See
15928          * Also:</h3>   <a
15929          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/EnableImageDeprecation">AWS
15930          * API Reference</a></p>
15931          *
15932          * Queues the request into a thread executor and triggers associated callback when operation has finished.
15933          */
15934         virtual void EnableImageDeprecationAsync(const Model::EnableImageDeprecationRequest& request, const EnableImageDeprecationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
15935 
15936         /**
15937          * <p>Enables access to the EC2 serial console of all instances for your account.
15938          * By default, access to the EC2 serial console is disabled for your account. For
15939          * more information, see <a
15940          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configure-access-to-serial-console.html#serial-console-account-access">Manage
15941          * account access to the EC2 serial console</a> in the <i>Amazon EC2 User
15942          * Guide</i>.</p><p><h3>See Also:</h3>   <a
15943          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/EnableSerialConsoleAccess">AWS
15944          * API Reference</a></p>
15945          */
15946         virtual Model::EnableSerialConsoleAccessOutcome EnableSerialConsoleAccess(const Model::EnableSerialConsoleAccessRequest& request) const;
15947 
15948         /**
15949          * <p>Enables access to the EC2 serial console of all instances for your account.
15950          * By default, access to the EC2 serial console is disabled for your account. For
15951          * more information, see <a
15952          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configure-access-to-serial-console.html#serial-console-account-access">Manage
15953          * account access to the EC2 serial console</a> in the <i>Amazon EC2 User
15954          * Guide</i>.</p><p><h3>See Also:</h3>   <a
15955          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/EnableSerialConsoleAccess">AWS
15956          * API Reference</a></p>
15957          *
15958          * returns a future to the operation so that it can be executed in parallel to other requests.
15959          */
15960         virtual Model::EnableSerialConsoleAccessOutcomeCallable EnableSerialConsoleAccessCallable(const Model::EnableSerialConsoleAccessRequest& request) const;
15961 
15962         /**
15963          * <p>Enables access to the EC2 serial console of all instances for your account.
15964          * By default, access to the EC2 serial console is disabled for your account. For
15965          * more information, see <a
15966          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configure-access-to-serial-console.html#serial-console-account-access">Manage
15967          * account access to the EC2 serial console</a> in the <i>Amazon EC2 User
15968          * Guide</i>.</p><p><h3>See Also:</h3>   <a
15969          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/EnableSerialConsoleAccess">AWS
15970          * API Reference</a></p>
15971          *
15972          * Queues the request into a thread executor and triggers associated callback when operation has finished.
15973          */
15974         virtual void EnableSerialConsoleAccessAsync(const Model::EnableSerialConsoleAccessRequest& request, const EnableSerialConsoleAccessResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
15975 
15976         /**
15977          * <p>Enables the specified attachment to propagate routes to the specified
15978          * propagation route table.</p><p><h3>See Also:</h3>   <a
15979          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/EnableTransitGatewayRouteTablePropagation">AWS
15980          * API Reference</a></p>
15981          */
15982         virtual Model::EnableTransitGatewayRouteTablePropagationOutcome EnableTransitGatewayRouteTablePropagation(const Model::EnableTransitGatewayRouteTablePropagationRequest& request) const;
15983 
15984         /**
15985          * <p>Enables the specified attachment to propagate routes to the specified
15986          * propagation route table.</p><p><h3>See Also:</h3>   <a
15987          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/EnableTransitGatewayRouteTablePropagation">AWS
15988          * API Reference</a></p>
15989          *
15990          * returns a future to the operation so that it can be executed in parallel to other requests.
15991          */
15992         virtual Model::EnableTransitGatewayRouteTablePropagationOutcomeCallable EnableTransitGatewayRouteTablePropagationCallable(const Model::EnableTransitGatewayRouteTablePropagationRequest& request) const;
15993 
15994         /**
15995          * <p>Enables the specified attachment to propagate routes to the specified
15996          * propagation route table.</p><p><h3>See Also:</h3>   <a
15997          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/EnableTransitGatewayRouteTablePropagation">AWS
15998          * API Reference</a></p>
15999          *
16000          * Queues the request into a thread executor and triggers associated callback when operation has finished.
16001          */
16002         virtual void EnableTransitGatewayRouteTablePropagationAsync(const Model::EnableTransitGatewayRouteTablePropagationRequest& request, const EnableTransitGatewayRouteTablePropagationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
16003 
16004         /**
16005          * <p>Enables a virtual private gateway (VGW) to propagate routes to the specified
16006          * route table of a VPC.</p><p><h3>See Also:</h3>   <a
16007          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/EnableVgwRoutePropagation">AWS
16008          * API Reference</a></p>
16009          */
16010         virtual Model::EnableVgwRoutePropagationOutcome EnableVgwRoutePropagation(const Model::EnableVgwRoutePropagationRequest& request) const;
16011 
16012         /**
16013          * <p>Enables a virtual private gateway (VGW) to propagate routes to the specified
16014          * route table of a VPC.</p><p><h3>See Also:</h3>   <a
16015          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/EnableVgwRoutePropagation">AWS
16016          * API Reference</a></p>
16017          *
16018          * returns a future to the operation so that it can be executed in parallel to other requests.
16019          */
16020         virtual Model::EnableVgwRoutePropagationOutcomeCallable EnableVgwRoutePropagationCallable(const Model::EnableVgwRoutePropagationRequest& request) const;
16021 
16022         /**
16023          * <p>Enables a virtual private gateway (VGW) to propagate routes to the specified
16024          * route table of a VPC.</p><p><h3>See Also:</h3>   <a
16025          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/EnableVgwRoutePropagation">AWS
16026          * API Reference</a></p>
16027          *
16028          * Queues the request into a thread executor and triggers associated callback when operation has finished.
16029          */
16030         virtual void EnableVgwRoutePropagationAsync(const Model::EnableVgwRoutePropagationRequest& request, const EnableVgwRoutePropagationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
16031 
16032         /**
16033          * <p>Enables I/O operations for a volume that had I/O operations disabled because
16034          * the data on the volume was potentially inconsistent.</p><p><h3>See Also:</h3>
16035          * <a
16036          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/EnableVolumeIO">AWS
16037          * API Reference</a></p>
16038          */
16039         virtual Model::EnableVolumeIOOutcome EnableVolumeIO(const Model::EnableVolumeIORequest& request) const;
16040 
16041         /**
16042          * <p>Enables I/O operations for a volume that had I/O operations disabled because
16043          * the data on the volume was potentially inconsistent.</p><p><h3>See Also:</h3>
16044          * <a
16045          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/EnableVolumeIO">AWS
16046          * API Reference</a></p>
16047          *
16048          * returns a future to the operation so that it can be executed in parallel to other requests.
16049          */
16050         virtual Model::EnableVolumeIOOutcomeCallable EnableVolumeIOCallable(const Model::EnableVolumeIORequest& request) const;
16051 
16052         /**
16053          * <p>Enables I/O operations for a volume that had I/O operations disabled because
16054          * the data on the volume was potentially inconsistent.</p><p><h3>See Also:</h3>
16055          * <a
16056          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/EnableVolumeIO">AWS
16057          * API Reference</a></p>
16058          *
16059          * Queues the request into a thread executor and triggers associated callback when operation has finished.
16060          */
16061         virtual void EnableVolumeIOAsync(const Model::EnableVolumeIORequest& request, const EnableVolumeIOResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
16062 
16063         /**
16064          * <p>Enables a VPC for ClassicLink. You can then link EC2-Classic instances to
16065          * your ClassicLink-enabled VPC to allow communication over private IP addresses.
16066          * You cannot enable your VPC for ClassicLink if any of your VPC route tables have
16067          * existing routes for address ranges within the <code>10.0.0.0/8</code> IP address
16068          * range, excluding local routes for VPCs in the <code>10.0.0.0/16</code> and
16069          * <code>10.1.0.0/16</code> IP address ranges. For more information, see <a
16070          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-classiclink.html">ClassicLink</a>
16071          * in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p><p><h3>See Also:</h3>
16072          * <a
16073          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/EnableVpcClassicLink">AWS
16074          * API Reference</a></p>
16075          */
16076         virtual Model::EnableVpcClassicLinkOutcome EnableVpcClassicLink(const Model::EnableVpcClassicLinkRequest& request) const;
16077 
16078         /**
16079          * <p>Enables a VPC for ClassicLink. You can then link EC2-Classic instances to
16080          * your ClassicLink-enabled VPC to allow communication over private IP addresses.
16081          * You cannot enable your VPC for ClassicLink if any of your VPC route tables have
16082          * existing routes for address ranges within the <code>10.0.0.0/8</code> IP address
16083          * range, excluding local routes for VPCs in the <code>10.0.0.0/16</code> and
16084          * <code>10.1.0.0/16</code> IP address ranges. For more information, see <a
16085          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-classiclink.html">ClassicLink</a>
16086          * in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p><p><h3>See Also:</h3>
16087          * <a
16088          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/EnableVpcClassicLink">AWS
16089          * API Reference</a></p>
16090          *
16091          * returns a future to the operation so that it can be executed in parallel to other requests.
16092          */
16093         virtual Model::EnableVpcClassicLinkOutcomeCallable EnableVpcClassicLinkCallable(const Model::EnableVpcClassicLinkRequest& request) const;
16094 
16095         /**
16096          * <p>Enables a VPC for ClassicLink. You can then link EC2-Classic instances to
16097          * your ClassicLink-enabled VPC to allow communication over private IP addresses.
16098          * You cannot enable your VPC for ClassicLink if any of your VPC route tables have
16099          * existing routes for address ranges within the <code>10.0.0.0/8</code> IP address
16100          * range, excluding local routes for VPCs in the <code>10.0.0.0/16</code> and
16101          * <code>10.1.0.0/16</code> IP address ranges. For more information, see <a
16102          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-classiclink.html">ClassicLink</a>
16103          * in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p><p><h3>See Also:</h3>
16104          * <a
16105          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/EnableVpcClassicLink">AWS
16106          * API Reference</a></p>
16107          *
16108          * Queues the request into a thread executor and triggers associated callback when operation has finished.
16109          */
16110         virtual void EnableVpcClassicLinkAsync(const Model::EnableVpcClassicLinkRequest& request, const EnableVpcClassicLinkResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
16111 
16112         /**
16113          * <p>Enables a VPC to support DNS hostname resolution for ClassicLink. If enabled,
16114          * the DNS hostname of a linked EC2-Classic instance resolves to its private IP
16115          * address when addressed from an instance in the VPC to which it's linked.
16116          * Similarly, the DNS hostname of an instance in a VPC resolves to its private IP
16117          * address when addressed from a linked EC2-Classic instance. For more information,
16118          * see <a
16119          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-classiclink.html">ClassicLink</a>
16120          * in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p> <p>You must specify a
16121          * VPC ID in the request.</p><p><h3>See Also:</h3>   <a
16122          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/EnableVpcClassicLinkDnsSupport">AWS
16123          * API Reference</a></p>
16124          */
16125         virtual Model::EnableVpcClassicLinkDnsSupportOutcome EnableVpcClassicLinkDnsSupport(const Model::EnableVpcClassicLinkDnsSupportRequest& request) const;
16126 
16127         /**
16128          * <p>Enables a VPC to support DNS hostname resolution for ClassicLink. If enabled,
16129          * the DNS hostname of a linked EC2-Classic instance resolves to its private IP
16130          * address when addressed from an instance in the VPC to which it's linked.
16131          * Similarly, the DNS hostname of an instance in a VPC resolves to its private IP
16132          * address when addressed from a linked EC2-Classic instance. For more information,
16133          * see <a
16134          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-classiclink.html">ClassicLink</a>
16135          * in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p> <p>You must specify a
16136          * VPC ID in the request.</p><p><h3>See Also:</h3>   <a
16137          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/EnableVpcClassicLinkDnsSupport">AWS
16138          * API Reference</a></p>
16139          *
16140          * returns a future to the operation so that it can be executed in parallel to other requests.
16141          */
16142         virtual Model::EnableVpcClassicLinkDnsSupportOutcomeCallable EnableVpcClassicLinkDnsSupportCallable(const Model::EnableVpcClassicLinkDnsSupportRequest& request) const;
16143 
16144         /**
16145          * <p>Enables a VPC to support DNS hostname resolution for ClassicLink. If enabled,
16146          * the DNS hostname of a linked EC2-Classic instance resolves to its private IP
16147          * address when addressed from an instance in the VPC to which it's linked.
16148          * Similarly, the DNS hostname of an instance in a VPC resolves to its private IP
16149          * address when addressed from a linked EC2-Classic instance. For more information,
16150          * see <a
16151          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-classiclink.html">ClassicLink</a>
16152          * in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p> <p>You must specify a
16153          * VPC ID in the request.</p><p><h3>See Also:</h3>   <a
16154          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/EnableVpcClassicLinkDnsSupport">AWS
16155          * API Reference</a></p>
16156          *
16157          * Queues the request into a thread executor and triggers associated callback when operation has finished.
16158          */
16159         virtual void EnableVpcClassicLinkDnsSupportAsync(const Model::EnableVpcClassicLinkDnsSupportRequest& request, const EnableVpcClassicLinkDnsSupportResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
16160 
16161         /**
16162          * <p>Downloads the client certificate revocation list for the specified Client VPN
16163          * endpoint.</p><p><h3>See Also:</h3>   <a
16164          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ExportClientVpnClientCertificateRevocationList">AWS
16165          * API Reference</a></p>
16166          */
16167         virtual Model::ExportClientVpnClientCertificateRevocationListOutcome ExportClientVpnClientCertificateRevocationList(const Model::ExportClientVpnClientCertificateRevocationListRequest& request) const;
16168 
16169         /**
16170          * <p>Downloads the client certificate revocation list for the specified Client VPN
16171          * endpoint.</p><p><h3>See Also:</h3>   <a
16172          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ExportClientVpnClientCertificateRevocationList">AWS
16173          * API Reference</a></p>
16174          *
16175          * returns a future to the operation so that it can be executed in parallel to other requests.
16176          */
16177         virtual Model::ExportClientVpnClientCertificateRevocationListOutcomeCallable ExportClientVpnClientCertificateRevocationListCallable(const Model::ExportClientVpnClientCertificateRevocationListRequest& request) const;
16178 
16179         /**
16180          * <p>Downloads the client certificate revocation list for the specified Client VPN
16181          * endpoint.</p><p><h3>See Also:</h3>   <a
16182          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ExportClientVpnClientCertificateRevocationList">AWS
16183          * API Reference</a></p>
16184          *
16185          * Queues the request into a thread executor and triggers associated callback when operation has finished.
16186          */
16187         virtual void ExportClientVpnClientCertificateRevocationListAsync(const Model::ExportClientVpnClientCertificateRevocationListRequest& request, const ExportClientVpnClientCertificateRevocationListResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
16188 
16189         /**
16190          * <p>Downloads the contents of the Client VPN endpoint configuration file for the
16191          * specified Client VPN endpoint. The Client VPN endpoint configuration file
16192          * includes the Client VPN endpoint and certificate information clients need to
16193          * establish a connection with the Client VPN endpoint.</p><p><h3>See Also:</h3>
16194          * <a
16195          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ExportClientVpnClientConfiguration">AWS
16196          * API Reference</a></p>
16197          */
16198         virtual Model::ExportClientVpnClientConfigurationOutcome ExportClientVpnClientConfiguration(const Model::ExportClientVpnClientConfigurationRequest& request) const;
16199 
16200         /**
16201          * <p>Downloads the contents of the Client VPN endpoint configuration file for the
16202          * specified Client VPN endpoint. The Client VPN endpoint configuration file
16203          * includes the Client VPN endpoint and certificate information clients need to
16204          * establish a connection with the Client VPN endpoint.</p><p><h3>See Also:</h3>
16205          * <a
16206          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ExportClientVpnClientConfiguration">AWS
16207          * API Reference</a></p>
16208          *
16209          * returns a future to the operation so that it can be executed in parallel to other requests.
16210          */
16211         virtual Model::ExportClientVpnClientConfigurationOutcomeCallable ExportClientVpnClientConfigurationCallable(const Model::ExportClientVpnClientConfigurationRequest& request) const;
16212 
16213         /**
16214          * <p>Downloads the contents of the Client VPN endpoint configuration file for the
16215          * specified Client VPN endpoint. The Client VPN endpoint configuration file
16216          * includes the Client VPN endpoint and certificate information clients need to
16217          * establish a connection with the Client VPN endpoint.</p><p><h3>See Also:</h3>
16218          * <a
16219          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ExportClientVpnClientConfiguration">AWS
16220          * API Reference</a></p>
16221          *
16222          * Queues the request into a thread executor and triggers associated callback when operation has finished.
16223          */
16224         virtual void ExportClientVpnClientConfigurationAsync(const Model::ExportClientVpnClientConfigurationRequest& request, const ExportClientVpnClientConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
16225 
16226         /**
16227          * <p>Exports an Amazon Machine Image (AMI) to a VM file. For more information, see
16228          * <a
16229          * href="https://docs.aws.amazon.com/vm-import/latest/userguide/vmexport_image.html">Exporting
16230          * a VM directly from an Amazon Machine Image (AMI)</a> in the <i>VM Import/Export
16231          * User Guide</i>.</p><p><h3>See Also:</h3>   <a
16232          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ExportImage">AWS API
16233          * Reference</a></p>
16234          */
16235         virtual Model::ExportImageOutcome ExportImage(const Model::ExportImageRequest& request) const;
16236 
16237         /**
16238          * <p>Exports an Amazon Machine Image (AMI) to a VM file. For more information, see
16239          * <a
16240          * href="https://docs.aws.amazon.com/vm-import/latest/userguide/vmexport_image.html">Exporting
16241          * a VM directly from an Amazon Machine Image (AMI)</a> in the <i>VM Import/Export
16242          * User Guide</i>.</p><p><h3>See Also:</h3>   <a
16243          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ExportImage">AWS API
16244          * Reference</a></p>
16245          *
16246          * returns a future to the operation so that it can be executed in parallel to other requests.
16247          */
16248         virtual Model::ExportImageOutcomeCallable ExportImageCallable(const Model::ExportImageRequest& request) const;
16249 
16250         /**
16251          * <p>Exports an Amazon Machine Image (AMI) to a VM file. For more information, see
16252          * <a
16253          * href="https://docs.aws.amazon.com/vm-import/latest/userguide/vmexport_image.html">Exporting
16254          * a VM directly from an Amazon Machine Image (AMI)</a> in the <i>VM Import/Export
16255          * User Guide</i>.</p><p><h3>See Also:</h3>   <a
16256          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ExportImage">AWS API
16257          * Reference</a></p>
16258          *
16259          * Queues the request into a thread executor and triggers associated callback when operation has finished.
16260          */
16261         virtual void ExportImageAsync(const Model::ExportImageRequest& request, const ExportImageResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
16262 
16263         /**
16264          * <p>Exports routes from the specified transit gateway route table to the
16265          * specified S3 bucket. By default, all routes are exported. Alternatively, you can
16266          * filter by CIDR range.</p> <p>The routes are saved to the specified bucket in a
16267          * JSON file. For more information, see <a
16268          * href="https://docs.aws.amazon.com/vpc/latest/tgw/tgw-route-tables.html#tgw-export-route-tables">Export
16269          * Route Tables to Amazon S3</a> in <i>Transit Gateways</i>.</p><p><h3>See
16270          * Also:</h3>   <a
16271          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ExportTransitGatewayRoutes">AWS
16272          * API Reference</a></p>
16273          */
16274         virtual Model::ExportTransitGatewayRoutesOutcome ExportTransitGatewayRoutes(const Model::ExportTransitGatewayRoutesRequest& request) const;
16275 
16276         /**
16277          * <p>Exports routes from the specified transit gateway route table to the
16278          * specified S3 bucket. By default, all routes are exported. Alternatively, you can
16279          * filter by CIDR range.</p> <p>The routes are saved to the specified bucket in a
16280          * JSON file. For more information, see <a
16281          * href="https://docs.aws.amazon.com/vpc/latest/tgw/tgw-route-tables.html#tgw-export-route-tables">Export
16282          * Route Tables to Amazon S3</a> in <i>Transit Gateways</i>.</p><p><h3>See
16283          * Also:</h3>   <a
16284          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ExportTransitGatewayRoutes">AWS
16285          * API Reference</a></p>
16286          *
16287          * returns a future to the operation so that it can be executed in parallel to other requests.
16288          */
16289         virtual Model::ExportTransitGatewayRoutesOutcomeCallable ExportTransitGatewayRoutesCallable(const Model::ExportTransitGatewayRoutesRequest& request) const;
16290 
16291         /**
16292          * <p>Exports routes from the specified transit gateway route table to the
16293          * specified S3 bucket. By default, all routes are exported. Alternatively, you can
16294          * filter by CIDR range.</p> <p>The routes are saved to the specified bucket in a
16295          * JSON file. For more information, see <a
16296          * href="https://docs.aws.amazon.com/vpc/latest/tgw/tgw-route-tables.html#tgw-export-route-tables">Export
16297          * Route Tables to Amazon S3</a> in <i>Transit Gateways</i>.</p><p><h3>See
16298          * Also:</h3>   <a
16299          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ExportTransitGatewayRoutes">AWS
16300          * API Reference</a></p>
16301          *
16302          * Queues the request into a thread executor and triggers associated callback when operation has finished.
16303          */
16304         virtual void ExportTransitGatewayRoutesAsync(const Model::ExportTransitGatewayRoutesRequest& request, const ExportTransitGatewayRoutesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
16305 
16306         /**
16307          * <p>Returns the IAM roles that are associated with the specified ACM (ACM)
16308          * certificate. It also returns the name of the Amazon S3 bucket and the Amazon S3
16309          * object key where the certificate, certificate chain, and encrypted private key
16310          * bundle are stored, and the ARN of the KMS key that's used to encrypt the private
16311          * key.</p><p><h3>See Also:</h3>   <a
16312          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetAssociatedEnclaveCertificateIamRoles">AWS
16313          * API Reference</a></p>
16314          */
16315         virtual Model::GetAssociatedEnclaveCertificateIamRolesOutcome GetAssociatedEnclaveCertificateIamRoles(const Model::GetAssociatedEnclaveCertificateIamRolesRequest& request) const;
16316 
16317         /**
16318          * <p>Returns the IAM roles that are associated with the specified ACM (ACM)
16319          * certificate. It also returns the name of the Amazon S3 bucket and the Amazon S3
16320          * object key where the certificate, certificate chain, and encrypted private key
16321          * bundle are stored, and the ARN of the KMS key that's used to encrypt the private
16322          * key.</p><p><h3>See Also:</h3>   <a
16323          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetAssociatedEnclaveCertificateIamRoles">AWS
16324          * API Reference</a></p>
16325          *
16326          * returns a future to the operation so that it can be executed in parallel to other requests.
16327          */
16328         virtual Model::GetAssociatedEnclaveCertificateIamRolesOutcomeCallable GetAssociatedEnclaveCertificateIamRolesCallable(const Model::GetAssociatedEnclaveCertificateIamRolesRequest& request) const;
16329 
16330         /**
16331          * <p>Returns the IAM roles that are associated with the specified ACM (ACM)
16332          * certificate. It also returns the name of the Amazon S3 bucket and the Amazon S3
16333          * object key where the certificate, certificate chain, and encrypted private key
16334          * bundle are stored, and the ARN of the KMS key that's used to encrypt the private
16335          * key.</p><p><h3>See Also:</h3>   <a
16336          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetAssociatedEnclaveCertificateIamRoles">AWS
16337          * API Reference</a></p>
16338          *
16339          * Queues the request into a thread executor and triggers associated callback when operation has finished.
16340          */
16341         virtual void GetAssociatedEnclaveCertificateIamRolesAsync(const Model::GetAssociatedEnclaveCertificateIamRolesRequest& request, const GetAssociatedEnclaveCertificateIamRolesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
16342 
16343         /**
16344          * <p>Gets information about the IPv6 CIDR block associations for a specified IPv6
16345          * address pool.</p><p><h3>See Also:</h3>   <a
16346          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetAssociatedIpv6PoolCidrs">AWS
16347          * API Reference</a></p>
16348          */
16349         virtual Model::GetAssociatedIpv6PoolCidrsOutcome GetAssociatedIpv6PoolCidrs(const Model::GetAssociatedIpv6PoolCidrsRequest& request) const;
16350 
16351         /**
16352          * <p>Gets information about the IPv6 CIDR block associations for a specified IPv6
16353          * address pool.</p><p><h3>See Also:</h3>   <a
16354          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetAssociatedIpv6PoolCidrs">AWS
16355          * API Reference</a></p>
16356          *
16357          * returns a future to the operation so that it can be executed in parallel to other requests.
16358          */
16359         virtual Model::GetAssociatedIpv6PoolCidrsOutcomeCallable GetAssociatedIpv6PoolCidrsCallable(const Model::GetAssociatedIpv6PoolCidrsRequest& request) const;
16360 
16361         /**
16362          * <p>Gets information about the IPv6 CIDR block associations for a specified IPv6
16363          * address pool.</p><p><h3>See Also:</h3>   <a
16364          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetAssociatedIpv6PoolCidrs">AWS
16365          * API Reference</a></p>
16366          *
16367          * Queues the request into a thread executor and triggers associated callback when operation has finished.
16368          */
16369         virtual void GetAssociatedIpv6PoolCidrsAsync(const Model::GetAssociatedIpv6PoolCidrsRequest& request, const GetAssociatedIpv6PoolCidrsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
16370 
16371         /**
16372          * <p>Gets usage information about a Capacity Reservation. If the Capacity
16373          * Reservation is shared, it shows usage information for the Capacity Reservation
16374          * owner and each Amazon Web Services account that is currently using the shared
16375          * capacity. If the Capacity Reservation is not shared, it shows only the Capacity
16376          * Reservation owner's usage.</p><p><h3>See Also:</h3>   <a
16377          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetCapacityReservationUsage">AWS
16378          * API Reference</a></p>
16379          */
16380         virtual Model::GetCapacityReservationUsageOutcome GetCapacityReservationUsage(const Model::GetCapacityReservationUsageRequest& request) const;
16381 
16382         /**
16383          * <p>Gets usage information about a Capacity Reservation. If the Capacity
16384          * Reservation is shared, it shows usage information for the Capacity Reservation
16385          * owner and each Amazon Web Services account that is currently using the shared
16386          * capacity. If the Capacity Reservation is not shared, it shows only the Capacity
16387          * Reservation owner's usage.</p><p><h3>See Also:</h3>   <a
16388          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetCapacityReservationUsage">AWS
16389          * API Reference</a></p>
16390          *
16391          * returns a future to the operation so that it can be executed in parallel to other requests.
16392          */
16393         virtual Model::GetCapacityReservationUsageOutcomeCallable GetCapacityReservationUsageCallable(const Model::GetCapacityReservationUsageRequest& request) const;
16394 
16395         /**
16396          * <p>Gets usage information about a Capacity Reservation. If the Capacity
16397          * Reservation is shared, it shows usage information for the Capacity Reservation
16398          * owner and each Amazon Web Services account that is currently using the shared
16399          * capacity. If the Capacity Reservation is not shared, it shows only the Capacity
16400          * Reservation owner's usage.</p><p><h3>See Also:</h3>   <a
16401          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetCapacityReservationUsage">AWS
16402          * API Reference</a></p>
16403          *
16404          * Queues the request into a thread executor and triggers associated callback when operation has finished.
16405          */
16406         virtual void GetCapacityReservationUsageAsync(const Model::GetCapacityReservationUsageRequest& request, const GetCapacityReservationUsageResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
16407 
16408         /**
16409          * <p>Describes the allocations from the specified customer-owned address
16410          * pool.</p><p><h3>See Also:</h3>   <a
16411          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetCoipPoolUsage">AWS
16412          * API Reference</a></p>
16413          */
16414         virtual Model::GetCoipPoolUsageOutcome GetCoipPoolUsage(const Model::GetCoipPoolUsageRequest& request) const;
16415 
16416         /**
16417          * <p>Describes the allocations from the specified customer-owned address
16418          * pool.</p><p><h3>See Also:</h3>   <a
16419          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetCoipPoolUsage">AWS
16420          * API Reference</a></p>
16421          *
16422          * returns a future to the operation so that it can be executed in parallel to other requests.
16423          */
16424         virtual Model::GetCoipPoolUsageOutcomeCallable GetCoipPoolUsageCallable(const Model::GetCoipPoolUsageRequest& request) const;
16425 
16426         /**
16427          * <p>Describes the allocations from the specified customer-owned address
16428          * pool.</p><p><h3>See Also:</h3>   <a
16429          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetCoipPoolUsage">AWS
16430          * API Reference</a></p>
16431          *
16432          * Queues the request into a thread executor and triggers associated callback when operation has finished.
16433          */
16434         virtual void GetCoipPoolUsageAsync(const Model::GetCoipPoolUsageRequest& request, const GetCoipPoolUsageResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
16435 
16436         /**
16437          * <p>Gets the console output for the specified instance. For Linux instances, the
16438          * instance console output displays the exact console output that would normally be
16439          * displayed on a physical monitor attached to a computer. For Windows instances,
16440          * the instance console output includes the last three system event log errors.</p>
16441          * <p>By default, the console output returns buffered information that was posted
16442          * shortly after an instance transition state (start, stop, reboot, or terminate).
16443          * This information is available for at least one hour after the most recent post.
16444          * Only the most recent 64 KB of console output is available.</p> <p>You can
16445          * optionally retrieve the latest serial console output at any time during the
16446          * instance lifecycle. This option is supported on instance types that use the
16447          * Nitro hypervisor.</p> <p>For more information, see <a
16448          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-console.html#instance-console-console-output">Instance
16449          * console output</a> in the <i>Amazon EC2 User Guide</i>.</p><p><h3>See Also:</h3>
16450          * <a
16451          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetConsoleOutput">AWS
16452          * API Reference</a></p>
16453          */
16454         virtual Model::GetConsoleOutputOutcome GetConsoleOutput(const Model::GetConsoleOutputRequest& request) const;
16455 
16456         /**
16457          * <p>Gets the console output for the specified instance. For Linux instances, the
16458          * instance console output displays the exact console output that would normally be
16459          * displayed on a physical monitor attached to a computer. For Windows instances,
16460          * the instance console output includes the last three system event log errors.</p>
16461          * <p>By default, the console output returns buffered information that was posted
16462          * shortly after an instance transition state (start, stop, reboot, or terminate).
16463          * This information is available for at least one hour after the most recent post.
16464          * Only the most recent 64 KB of console output is available.</p> <p>You can
16465          * optionally retrieve the latest serial console output at any time during the
16466          * instance lifecycle. This option is supported on instance types that use the
16467          * Nitro hypervisor.</p> <p>For more information, see <a
16468          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-console.html#instance-console-console-output">Instance
16469          * console output</a> in the <i>Amazon EC2 User Guide</i>.</p><p><h3>See Also:</h3>
16470          * <a
16471          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetConsoleOutput">AWS
16472          * API Reference</a></p>
16473          *
16474          * returns a future to the operation so that it can be executed in parallel to other requests.
16475          */
16476         virtual Model::GetConsoleOutputOutcomeCallable GetConsoleOutputCallable(const Model::GetConsoleOutputRequest& request) const;
16477 
16478         /**
16479          * <p>Gets the console output for the specified instance. For Linux instances, the
16480          * instance console output displays the exact console output that would normally be
16481          * displayed on a physical monitor attached to a computer. For Windows instances,
16482          * the instance console output includes the last three system event log errors.</p>
16483          * <p>By default, the console output returns buffered information that was posted
16484          * shortly after an instance transition state (start, stop, reboot, or terminate).
16485          * This information is available for at least one hour after the most recent post.
16486          * Only the most recent 64 KB of console output is available.</p> <p>You can
16487          * optionally retrieve the latest serial console output at any time during the
16488          * instance lifecycle. This option is supported on instance types that use the
16489          * Nitro hypervisor.</p> <p>For more information, see <a
16490          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-console.html#instance-console-console-output">Instance
16491          * console output</a> in the <i>Amazon EC2 User Guide</i>.</p><p><h3>See Also:</h3>
16492          * <a
16493          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetConsoleOutput">AWS
16494          * API Reference</a></p>
16495          *
16496          * Queues the request into a thread executor and triggers associated callback when operation has finished.
16497          */
16498         virtual void GetConsoleOutputAsync(const Model::GetConsoleOutputRequest& request, const GetConsoleOutputResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
16499 
16500         /**
16501          * <p>Retrieve a JPG-format screenshot of a running instance to help with
16502          * troubleshooting.</p> <p>The returned content is Base64-encoded.</p><p><h3>See
16503          * Also:</h3>   <a
16504          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetConsoleScreenshot">AWS
16505          * API Reference</a></p>
16506          */
16507         virtual Model::GetConsoleScreenshotOutcome GetConsoleScreenshot(const Model::GetConsoleScreenshotRequest& request) const;
16508 
16509         /**
16510          * <p>Retrieve a JPG-format screenshot of a running instance to help with
16511          * troubleshooting.</p> <p>The returned content is Base64-encoded.</p><p><h3>See
16512          * Also:</h3>   <a
16513          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetConsoleScreenshot">AWS
16514          * API Reference</a></p>
16515          *
16516          * returns a future to the operation so that it can be executed in parallel to other requests.
16517          */
16518         virtual Model::GetConsoleScreenshotOutcomeCallable GetConsoleScreenshotCallable(const Model::GetConsoleScreenshotRequest& request) const;
16519 
16520         /**
16521          * <p>Retrieve a JPG-format screenshot of a running instance to help with
16522          * troubleshooting.</p> <p>The returned content is Base64-encoded.</p><p><h3>See
16523          * Also:</h3>   <a
16524          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetConsoleScreenshot">AWS
16525          * API Reference</a></p>
16526          *
16527          * Queues the request into a thread executor and triggers associated callback when operation has finished.
16528          */
16529         virtual void GetConsoleScreenshotAsync(const Model::GetConsoleScreenshotRequest& request, const GetConsoleScreenshotResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
16530 
16531         /**
16532          * <p>Describes the default credit option for CPU usage of a burstable performance
16533          * instance family.</p> <p>For more information, see <a
16534          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html">Burstable
16535          * performance instances</a> in the <i>Amazon EC2 User Guide</i>.</p><p><h3>See
16536          * Also:</h3>   <a
16537          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetDefaultCreditSpecification">AWS
16538          * API Reference</a></p>
16539          */
16540         virtual Model::GetDefaultCreditSpecificationOutcome GetDefaultCreditSpecification(const Model::GetDefaultCreditSpecificationRequest& request) const;
16541 
16542         /**
16543          * <p>Describes the default credit option for CPU usage of a burstable performance
16544          * instance family.</p> <p>For more information, see <a
16545          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html">Burstable
16546          * performance instances</a> in the <i>Amazon EC2 User Guide</i>.</p><p><h3>See
16547          * Also:</h3>   <a
16548          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetDefaultCreditSpecification">AWS
16549          * API Reference</a></p>
16550          *
16551          * returns a future to the operation so that it can be executed in parallel to other requests.
16552          */
16553         virtual Model::GetDefaultCreditSpecificationOutcomeCallable GetDefaultCreditSpecificationCallable(const Model::GetDefaultCreditSpecificationRequest& request) const;
16554 
16555         /**
16556          * <p>Describes the default credit option for CPU usage of a burstable performance
16557          * instance family.</p> <p>For more information, see <a
16558          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html">Burstable
16559          * performance instances</a> in the <i>Amazon EC2 User Guide</i>.</p><p><h3>See
16560          * Also:</h3>   <a
16561          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetDefaultCreditSpecification">AWS
16562          * API Reference</a></p>
16563          *
16564          * Queues the request into a thread executor and triggers associated callback when operation has finished.
16565          */
16566         virtual void GetDefaultCreditSpecificationAsync(const Model::GetDefaultCreditSpecificationRequest& request, const GetDefaultCreditSpecificationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
16567 
16568         /**
16569          * <p>Describes the default KMS key for EBS encryption by default for your account
16570          * in this Region. You can change the default KMS key for encryption by default
16571          * using <a>ModifyEbsDefaultKmsKeyId</a> or <a>ResetEbsDefaultKmsKeyId</a>.</p>
16572          * <p>For more information, see <a
16573          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html">Amazon
16574          * EBS encryption</a> in the <i>Amazon Elastic Compute Cloud User
16575          * Guide</i>.</p><p><h3>See Also:</h3>   <a
16576          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetEbsDefaultKmsKeyId">AWS
16577          * API Reference</a></p>
16578          */
16579         virtual Model::GetEbsDefaultKmsKeyIdOutcome GetEbsDefaultKmsKeyId(const Model::GetEbsDefaultKmsKeyIdRequest& request) const;
16580 
16581         /**
16582          * <p>Describes the default KMS key for EBS encryption by default for your account
16583          * in this Region. You can change the default KMS key for encryption by default
16584          * using <a>ModifyEbsDefaultKmsKeyId</a> or <a>ResetEbsDefaultKmsKeyId</a>.</p>
16585          * <p>For more information, see <a
16586          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html">Amazon
16587          * EBS encryption</a> in the <i>Amazon Elastic Compute Cloud User
16588          * Guide</i>.</p><p><h3>See Also:</h3>   <a
16589          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetEbsDefaultKmsKeyId">AWS
16590          * API Reference</a></p>
16591          *
16592          * returns a future to the operation so that it can be executed in parallel to other requests.
16593          */
16594         virtual Model::GetEbsDefaultKmsKeyIdOutcomeCallable GetEbsDefaultKmsKeyIdCallable(const Model::GetEbsDefaultKmsKeyIdRequest& request) const;
16595 
16596         /**
16597          * <p>Describes the default KMS key for EBS encryption by default for your account
16598          * in this Region. You can change the default KMS key for encryption by default
16599          * using <a>ModifyEbsDefaultKmsKeyId</a> or <a>ResetEbsDefaultKmsKeyId</a>.</p>
16600          * <p>For more information, see <a
16601          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html">Amazon
16602          * EBS encryption</a> in the <i>Amazon Elastic Compute Cloud User
16603          * Guide</i>.</p><p><h3>See Also:</h3>   <a
16604          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetEbsDefaultKmsKeyId">AWS
16605          * API Reference</a></p>
16606          *
16607          * Queues the request into a thread executor and triggers associated callback when operation has finished.
16608          */
16609         virtual void GetEbsDefaultKmsKeyIdAsync(const Model::GetEbsDefaultKmsKeyIdRequest& request, const GetEbsDefaultKmsKeyIdResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
16610 
16611         /**
16612          * <p>Describes whether EBS encryption by default is enabled for your account in
16613          * the current Region.</p> <p>For more information, see <a
16614          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html">Amazon
16615          * EBS encryption</a> in the <i>Amazon Elastic Compute Cloud User
16616          * Guide</i>.</p><p><h3>See Also:</h3>   <a
16617          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetEbsEncryptionByDefault">AWS
16618          * API Reference</a></p>
16619          */
16620         virtual Model::GetEbsEncryptionByDefaultOutcome GetEbsEncryptionByDefault(const Model::GetEbsEncryptionByDefaultRequest& request) const;
16621 
16622         /**
16623          * <p>Describes whether EBS encryption by default is enabled for your account in
16624          * the current Region.</p> <p>For more information, see <a
16625          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html">Amazon
16626          * EBS encryption</a> in the <i>Amazon Elastic Compute Cloud User
16627          * Guide</i>.</p><p><h3>See Also:</h3>   <a
16628          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetEbsEncryptionByDefault">AWS
16629          * API Reference</a></p>
16630          *
16631          * returns a future to the operation so that it can be executed in parallel to other requests.
16632          */
16633         virtual Model::GetEbsEncryptionByDefaultOutcomeCallable GetEbsEncryptionByDefaultCallable(const Model::GetEbsEncryptionByDefaultRequest& request) const;
16634 
16635         /**
16636          * <p>Describes whether EBS encryption by default is enabled for your account in
16637          * the current Region.</p> <p>For more information, see <a
16638          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html">Amazon
16639          * EBS encryption</a> in the <i>Amazon Elastic Compute Cloud User
16640          * Guide</i>.</p><p><h3>See Also:</h3>   <a
16641          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetEbsEncryptionByDefault">AWS
16642          * API Reference</a></p>
16643          *
16644          * Queues the request into a thread executor and triggers associated callback when operation has finished.
16645          */
16646         virtual void GetEbsEncryptionByDefaultAsync(const Model::GetEbsEncryptionByDefaultRequest& request, const GetEbsEncryptionByDefaultResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
16647 
16648         /**
16649          * <p>Generates a CloudFormation template that streamlines and automates the
16650          * integration of VPC flow logs with Amazon Athena. This make it easier for you to
16651          * query and gain insights from VPC flow logs data. Based on the information that
16652          * you provide, we configure resources in the template to do the following:</p>
16653          * <ul> <li> <p>Create a table in Athena that maps fields to a custom log
16654          * format</p> </li> <li> <p>Create a Lambda function that updates the table with
16655          * new partitions on a daily, weekly, or monthly basis</p> </li> <li> <p>Create a
16656          * table partitioned between two timestamps in the past</p> </li> <li> <p>Create a
16657          * set of named queries in Athena that you can use to get started quickly</p> </li>
16658          * </ul><p><h3>See Also:</h3>   <a
16659          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetFlowLogsIntegrationTemplate">AWS
16660          * API Reference</a></p>
16661          */
16662         virtual Model::GetFlowLogsIntegrationTemplateOutcome GetFlowLogsIntegrationTemplate(const Model::GetFlowLogsIntegrationTemplateRequest& request) const;
16663 
16664         /**
16665          * <p>Generates a CloudFormation template that streamlines and automates the
16666          * integration of VPC flow logs with Amazon Athena. This make it easier for you to
16667          * query and gain insights from VPC flow logs data. Based on the information that
16668          * you provide, we configure resources in the template to do the following:</p>
16669          * <ul> <li> <p>Create a table in Athena that maps fields to a custom log
16670          * format</p> </li> <li> <p>Create a Lambda function that updates the table with
16671          * new partitions on a daily, weekly, or monthly basis</p> </li> <li> <p>Create a
16672          * table partitioned between two timestamps in the past</p> </li> <li> <p>Create a
16673          * set of named queries in Athena that you can use to get started quickly</p> </li>
16674          * </ul><p><h3>See Also:</h3>   <a
16675          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetFlowLogsIntegrationTemplate">AWS
16676          * API Reference</a></p>
16677          *
16678          * returns a future to the operation so that it can be executed in parallel to other requests.
16679          */
16680         virtual Model::GetFlowLogsIntegrationTemplateOutcomeCallable GetFlowLogsIntegrationTemplateCallable(const Model::GetFlowLogsIntegrationTemplateRequest& request) const;
16681 
16682         /**
16683          * <p>Generates a CloudFormation template that streamlines and automates the
16684          * integration of VPC flow logs with Amazon Athena. This make it easier for you to
16685          * query and gain insights from VPC flow logs data. Based on the information that
16686          * you provide, we configure resources in the template to do the following:</p>
16687          * <ul> <li> <p>Create a table in Athena that maps fields to a custom log
16688          * format</p> </li> <li> <p>Create a Lambda function that updates the table with
16689          * new partitions on a daily, weekly, or monthly basis</p> </li> <li> <p>Create a
16690          * table partitioned between two timestamps in the past</p> </li> <li> <p>Create a
16691          * set of named queries in Athena that you can use to get started quickly</p> </li>
16692          * </ul><p><h3>See Also:</h3>   <a
16693          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetFlowLogsIntegrationTemplate">AWS
16694          * API Reference</a></p>
16695          *
16696          * Queues the request into a thread executor and triggers associated callback when operation has finished.
16697          */
16698         virtual void GetFlowLogsIntegrationTemplateAsync(const Model::GetFlowLogsIntegrationTemplateRequest& request, const GetFlowLogsIntegrationTemplateResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
16699 
16700         /**
16701          * <p>Lists the resource groups to which a Capacity Reservation has been
16702          * added.</p><p><h3>See Also:</h3>   <a
16703          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetGroupsForCapacityReservation">AWS
16704          * API Reference</a></p>
16705          */
16706         virtual Model::GetGroupsForCapacityReservationOutcome GetGroupsForCapacityReservation(const Model::GetGroupsForCapacityReservationRequest& request) const;
16707 
16708         /**
16709          * <p>Lists the resource groups to which a Capacity Reservation has been
16710          * added.</p><p><h3>See Also:</h3>   <a
16711          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetGroupsForCapacityReservation">AWS
16712          * API Reference</a></p>
16713          *
16714          * returns a future to the operation so that it can be executed in parallel to other requests.
16715          */
16716         virtual Model::GetGroupsForCapacityReservationOutcomeCallable GetGroupsForCapacityReservationCallable(const Model::GetGroupsForCapacityReservationRequest& request) const;
16717 
16718         /**
16719          * <p>Lists the resource groups to which a Capacity Reservation has been
16720          * added.</p><p><h3>See Also:</h3>   <a
16721          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetGroupsForCapacityReservation">AWS
16722          * API Reference</a></p>
16723          *
16724          * Queues the request into a thread executor and triggers associated callback when operation has finished.
16725          */
16726         virtual void GetGroupsForCapacityReservationAsync(const Model::GetGroupsForCapacityReservationRequest& request, const GetGroupsForCapacityReservationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
16727 
16728         /**
16729          * <p>Preview a reservation purchase with configurations that match those of your
16730          * Dedicated Host. You must have active Dedicated Hosts in your account before you
16731          * purchase a reservation.</p> <p>This is a preview of the
16732          * <a>PurchaseHostReservation</a> action and does not result in the offering being
16733          * purchased.</p><p><h3>See Also:</h3>   <a
16734          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetHostReservationPurchasePreview">AWS
16735          * API Reference</a></p>
16736          */
16737         virtual Model::GetHostReservationPurchasePreviewOutcome GetHostReservationPurchasePreview(const Model::GetHostReservationPurchasePreviewRequest& request) const;
16738 
16739         /**
16740          * <p>Preview a reservation purchase with configurations that match those of your
16741          * Dedicated Host. You must have active Dedicated Hosts in your account before you
16742          * purchase a reservation.</p> <p>This is a preview of the
16743          * <a>PurchaseHostReservation</a> action and does not result in the offering being
16744          * purchased.</p><p><h3>See Also:</h3>   <a
16745          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetHostReservationPurchasePreview">AWS
16746          * API Reference</a></p>
16747          *
16748          * returns a future to the operation so that it can be executed in parallel to other requests.
16749          */
16750         virtual Model::GetHostReservationPurchasePreviewOutcomeCallable GetHostReservationPurchasePreviewCallable(const Model::GetHostReservationPurchasePreviewRequest& request) const;
16751 
16752         /**
16753          * <p>Preview a reservation purchase with configurations that match those of your
16754          * Dedicated Host. You must have active Dedicated Hosts in your account before you
16755          * purchase a reservation.</p> <p>This is a preview of the
16756          * <a>PurchaseHostReservation</a> action and does not result in the offering being
16757          * purchased.</p><p><h3>See Also:</h3>   <a
16758          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetHostReservationPurchasePreview">AWS
16759          * API Reference</a></p>
16760          *
16761          * Queues the request into a thread executor and triggers associated callback when operation has finished.
16762          */
16763         virtual void GetHostReservationPurchasePreviewAsync(const Model::GetHostReservationPurchasePreviewRequest& request, const GetHostReservationPurchasePreviewResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
16764 
16765         /**
16766          * <p>Retrieves the configuration data of the specified instance. You can use this
16767          * data to create a launch template. </p> <p>This action calls on other describe
16768          * actions to get instance information. Depending on your instance configuration,
16769          * you may need to allow the following actions in your IAM policy:
16770          * DescribeSpotInstanceRequests, DescribeInstanceCreditSpecifications,
16771          * DescribeVolumes, DescribeInstanceAttribute, and DescribeElasticGpus. Or, you can
16772          * allow <code>describe*</code> depending on your instance
16773          * requirements.</p><p><h3>See Also:</h3>   <a
16774          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetLaunchTemplateData">AWS
16775          * API Reference</a></p>
16776          */
16777         virtual Model::GetLaunchTemplateDataOutcome GetLaunchTemplateData(const Model::GetLaunchTemplateDataRequest& request) const;
16778 
16779         /**
16780          * <p>Retrieves the configuration data of the specified instance. You can use this
16781          * data to create a launch template. </p> <p>This action calls on other describe
16782          * actions to get instance information. Depending on your instance configuration,
16783          * you may need to allow the following actions in your IAM policy:
16784          * DescribeSpotInstanceRequests, DescribeInstanceCreditSpecifications,
16785          * DescribeVolumes, DescribeInstanceAttribute, and DescribeElasticGpus. Or, you can
16786          * allow <code>describe*</code> depending on your instance
16787          * requirements.</p><p><h3>See Also:</h3>   <a
16788          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetLaunchTemplateData">AWS
16789          * API Reference</a></p>
16790          *
16791          * returns a future to the operation so that it can be executed in parallel to other requests.
16792          */
16793         virtual Model::GetLaunchTemplateDataOutcomeCallable GetLaunchTemplateDataCallable(const Model::GetLaunchTemplateDataRequest& request) const;
16794 
16795         /**
16796          * <p>Retrieves the configuration data of the specified instance. You can use this
16797          * data to create a launch template. </p> <p>This action calls on other describe
16798          * actions to get instance information. Depending on your instance configuration,
16799          * you may need to allow the following actions in your IAM policy:
16800          * DescribeSpotInstanceRequests, DescribeInstanceCreditSpecifications,
16801          * DescribeVolumes, DescribeInstanceAttribute, and DescribeElasticGpus. Or, you can
16802          * allow <code>describe*</code> depending on your instance
16803          * requirements.</p><p><h3>See Also:</h3>   <a
16804          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetLaunchTemplateData">AWS
16805          * API Reference</a></p>
16806          *
16807          * Queues the request into a thread executor and triggers associated callback when operation has finished.
16808          */
16809         virtual void GetLaunchTemplateDataAsync(const Model::GetLaunchTemplateDataRequest& request, const GetLaunchTemplateDataResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
16810 
16811         /**
16812          * <p>Gets information about the resources that are associated with the specified
16813          * managed prefix list.</p><p><h3>See Also:</h3>   <a
16814          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetManagedPrefixListAssociations">AWS
16815          * API Reference</a></p>
16816          */
16817         virtual Model::GetManagedPrefixListAssociationsOutcome GetManagedPrefixListAssociations(const Model::GetManagedPrefixListAssociationsRequest& request) const;
16818 
16819         /**
16820          * <p>Gets information about the resources that are associated with the specified
16821          * managed prefix list.</p><p><h3>See Also:</h3>   <a
16822          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetManagedPrefixListAssociations">AWS
16823          * API Reference</a></p>
16824          *
16825          * returns a future to the operation so that it can be executed in parallel to other requests.
16826          */
16827         virtual Model::GetManagedPrefixListAssociationsOutcomeCallable GetManagedPrefixListAssociationsCallable(const Model::GetManagedPrefixListAssociationsRequest& request) const;
16828 
16829         /**
16830          * <p>Gets information about the resources that are associated with the specified
16831          * managed prefix list.</p><p><h3>See Also:</h3>   <a
16832          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetManagedPrefixListAssociations">AWS
16833          * API Reference</a></p>
16834          *
16835          * Queues the request into a thread executor and triggers associated callback when operation has finished.
16836          */
16837         virtual void GetManagedPrefixListAssociationsAsync(const Model::GetManagedPrefixListAssociationsRequest& request, const GetManagedPrefixListAssociationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
16838 
16839         /**
16840          * <p>Gets information about the entries for a specified managed prefix
16841          * list.</p><p><h3>See Also:</h3>   <a
16842          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetManagedPrefixListEntries">AWS
16843          * API Reference</a></p>
16844          */
16845         virtual Model::GetManagedPrefixListEntriesOutcome GetManagedPrefixListEntries(const Model::GetManagedPrefixListEntriesRequest& request) const;
16846 
16847         /**
16848          * <p>Gets information about the entries for a specified managed prefix
16849          * list.</p><p><h3>See Also:</h3>   <a
16850          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetManagedPrefixListEntries">AWS
16851          * API Reference</a></p>
16852          *
16853          * returns a future to the operation so that it can be executed in parallel to other requests.
16854          */
16855         virtual Model::GetManagedPrefixListEntriesOutcomeCallable GetManagedPrefixListEntriesCallable(const Model::GetManagedPrefixListEntriesRequest& request) const;
16856 
16857         /**
16858          * <p>Gets information about the entries for a specified managed prefix
16859          * list.</p><p><h3>See Also:</h3>   <a
16860          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetManagedPrefixListEntries">AWS
16861          * API Reference</a></p>
16862          *
16863          * Queues the request into a thread executor and triggers associated callback when operation has finished.
16864          */
16865         virtual void GetManagedPrefixListEntriesAsync(const Model::GetManagedPrefixListEntriesRequest& request, const GetManagedPrefixListEntriesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
16866 
16867         /**
16868          * <p>Retrieves the encrypted administrator password for a running Windows
16869          * instance.</p> <p>The Windows password is generated at boot by the
16870          * <code>EC2Config</code> service or <code>EC2Launch</code> scripts (Windows Server
16871          * 2016 and later). This usually only happens the first time an instance is
16872          * launched. For more information, see <a
16873          * href="https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/UsingConfig_WinAMI.html">EC2Config</a>
16874          * and <a
16875          * href="https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2launch.html">EC2Launch</a>
16876          * in the <i>Amazon EC2 User Guide</i>.</p> <p>For the <code>EC2Config</code>
16877          * service, the password is not generated for rebundled AMIs unless
16878          * <code>Ec2SetPassword</code> is enabled before bundling.</p> <p>The password is
16879          * encrypted using the key pair that you specified when you launched the instance.
16880          * You must provide the corresponding key pair file.</p> <p>When you launch an
16881          * instance, password generation and encryption may take a few minutes. If you try
16882          * to retrieve the password before it's available, the output returns an empty
16883          * string. We recommend that you wait up to 15 minutes after launching an instance
16884          * before trying to retrieve the generated password.</p><p><h3>See Also:</h3>   <a
16885          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetPasswordData">AWS
16886          * API Reference</a></p>
16887          */
16888         virtual Model::GetPasswordDataOutcome GetPasswordData(const Model::GetPasswordDataRequest& request) const;
16889 
16890         /**
16891          * <p>Retrieves the encrypted administrator password for a running Windows
16892          * instance.</p> <p>The Windows password is generated at boot by the
16893          * <code>EC2Config</code> service or <code>EC2Launch</code> scripts (Windows Server
16894          * 2016 and later). This usually only happens the first time an instance is
16895          * launched. For more information, see <a
16896          * href="https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/UsingConfig_WinAMI.html">EC2Config</a>
16897          * and <a
16898          * href="https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2launch.html">EC2Launch</a>
16899          * in the <i>Amazon EC2 User Guide</i>.</p> <p>For the <code>EC2Config</code>
16900          * service, the password is not generated for rebundled AMIs unless
16901          * <code>Ec2SetPassword</code> is enabled before bundling.</p> <p>The password is
16902          * encrypted using the key pair that you specified when you launched the instance.
16903          * You must provide the corresponding key pair file.</p> <p>When you launch an
16904          * instance, password generation and encryption may take a few minutes. If you try
16905          * to retrieve the password before it's available, the output returns an empty
16906          * string. We recommend that you wait up to 15 minutes after launching an instance
16907          * before trying to retrieve the generated password.</p><p><h3>See Also:</h3>   <a
16908          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetPasswordData">AWS
16909          * API Reference</a></p>
16910          *
16911          * returns a future to the operation so that it can be executed in parallel to other requests.
16912          */
16913         virtual Model::GetPasswordDataOutcomeCallable GetPasswordDataCallable(const Model::GetPasswordDataRequest& request) const;
16914 
16915         /**
16916          * <p>Retrieves the encrypted administrator password for a running Windows
16917          * instance.</p> <p>The Windows password is generated at boot by the
16918          * <code>EC2Config</code> service or <code>EC2Launch</code> scripts (Windows Server
16919          * 2016 and later). This usually only happens the first time an instance is
16920          * launched. For more information, see <a
16921          * href="https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/UsingConfig_WinAMI.html">EC2Config</a>
16922          * and <a
16923          * href="https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2launch.html">EC2Launch</a>
16924          * in the <i>Amazon EC2 User Guide</i>.</p> <p>For the <code>EC2Config</code>
16925          * service, the password is not generated for rebundled AMIs unless
16926          * <code>Ec2SetPassword</code> is enabled before bundling.</p> <p>The password is
16927          * encrypted using the key pair that you specified when you launched the instance.
16928          * You must provide the corresponding key pair file.</p> <p>When you launch an
16929          * instance, password generation and encryption may take a few minutes. If you try
16930          * to retrieve the password before it's available, the output returns an empty
16931          * string. We recommend that you wait up to 15 minutes after launching an instance
16932          * before trying to retrieve the generated password.</p><p><h3>See Also:</h3>   <a
16933          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetPasswordData">AWS
16934          * API Reference</a></p>
16935          *
16936          * Queues the request into a thread executor and triggers associated callback when operation has finished.
16937          */
16938         virtual void GetPasswordDataAsync(const Model::GetPasswordDataRequest& request, const GetPasswordDataResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
16939 
16940         /**
16941          * <p>Returns a quote and exchange information for exchanging one or more specified
16942          * Convertible Reserved Instances for a new Convertible Reserved Instance. If the
16943          * exchange cannot be performed, the reason is returned in the response. Use
16944          * <a>AcceptReservedInstancesExchangeQuote</a> to perform the
16945          * exchange.</p><p><h3>See Also:</h3>   <a
16946          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetReservedInstancesExchangeQuote">AWS
16947          * API Reference</a></p>
16948          */
16949         virtual Model::GetReservedInstancesExchangeQuoteOutcome GetReservedInstancesExchangeQuote(const Model::GetReservedInstancesExchangeQuoteRequest& request) const;
16950 
16951         /**
16952          * <p>Returns a quote and exchange information for exchanging one or more specified
16953          * Convertible Reserved Instances for a new Convertible Reserved Instance. If the
16954          * exchange cannot be performed, the reason is returned in the response. Use
16955          * <a>AcceptReservedInstancesExchangeQuote</a> to perform the
16956          * exchange.</p><p><h3>See Also:</h3>   <a
16957          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetReservedInstancesExchangeQuote">AWS
16958          * API Reference</a></p>
16959          *
16960          * returns a future to the operation so that it can be executed in parallel to other requests.
16961          */
16962         virtual Model::GetReservedInstancesExchangeQuoteOutcomeCallable GetReservedInstancesExchangeQuoteCallable(const Model::GetReservedInstancesExchangeQuoteRequest& request) const;
16963 
16964         /**
16965          * <p>Returns a quote and exchange information for exchanging one or more specified
16966          * Convertible Reserved Instances for a new Convertible Reserved Instance. If the
16967          * exchange cannot be performed, the reason is returned in the response. Use
16968          * <a>AcceptReservedInstancesExchangeQuote</a> to perform the
16969          * exchange.</p><p><h3>See Also:</h3>   <a
16970          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetReservedInstancesExchangeQuote">AWS
16971          * API Reference</a></p>
16972          *
16973          * Queues the request into a thread executor and triggers associated callback when operation has finished.
16974          */
16975         virtual void GetReservedInstancesExchangeQuoteAsync(const Model::GetReservedInstancesExchangeQuoteRequest& request, const GetReservedInstancesExchangeQuoteResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
16976 
16977         /**
16978          * <p>Retrieves the access status of your account to the EC2 serial console of all
16979          * instances. By default, access to the EC2 serial console is disabled for your
16980          * account. For more information, see <a
16981          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configure-access-to-serial-console.html#serial-console-account-access">Manage
16982          * account access to the EC2 serial console</a> in the <i>Amazon EC2 User
16983          * Guide</i>.</p><p><h3>See Also:</h3>   <a
16984          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetSerialConsoleAccessStatus">AWS
16985          * API Reference</a></p>
16986          */
16987         virtual Model::GetSerialConsoleAccessStatusOutcome GetSerialConsoleAccessStatus(const Model::GetSerialConsoleAccessStatusRequest& request) const;
16988 
16989         /**
16990          * <p>Retrieves the access status of your account to the EC2 serial console of all
16991          * instances. By default, access to the EC2 serial console is disabled for your
16992          * account. For more information, see <a
16993          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configure-access-to-serial-console.html#serial-console-account-access">Manage
16994          * account access to the EC2 serial console</a> in the <i>Amazon EC2 User
16995          * Guide</i>.</p><p><h3>See Also:</h3>   <a
16996          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetSerialConsoleAccessStatus">AWS
16997          * API Reference</a></p>
16998          *
16999          * returns a future to the operation so that it can be executed in parallel to other requests.
17000          */
17001         virtual Model::GetSerialConsoleAccessStatusOutcomeCallable GetSerialConsoleAccessStatusCallable(const Model::GetSerialConsoleAccessStatusRequest& request) const;
17002 
17003         /**
17004          * <p>Retrieves the access status of your account to the EC2 serial console of all
17005          * instances. By default, access to the EC2 serial console is disabled for your
17006          * account. For more information, see <a
17007          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configure-access-to-serial-console.html#serial-console-account-access">Manage
17008          * account access to the EC2 serial console</a> in the <i>Amazon EC2 User
17009          * Guide</i>.</p><p><h3>See Also:</h3>   <a
17010          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetSerialConsoleAccessStatus">AWS
17011          * API Reference</a></p>
17012          *
17013          * Queues the request into a thread executor and triggers associated callback when operation has finished.
17014          */
17015         virtual void GetSerialConsoleAccessStatusAsync(const Model::GetSerialConsoleAccessStatusRequest& request, const GetSerialConsoleAccessStatusResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
17016 
17017         /**
17018          * <p>Gets information about the subnet CIDR reservations.</p><p><h3>See Also:</h3>
17019          * <a
17020          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetSubnetCidrReservations">AWS
17021          * API Reference</a></p>
17022          */
17023         virtual Model::GetSubnetCidrReservationsOutcome GetSubnetCidrReservations(const Model::GetSubnetCidrReservationsRequest& request) const;
17024 
17025         /**
17026          * <p>Gets information about the subnet CIDR reservations.</p><p><h3>See Also:</h3>
17027          * <a
17028          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetSubnetCidrReservations">AWS
17029          * API Reference</a></p>
17030          *
17031          * returns a future to the operation so that it can be executed in parallel to other requests.
17032          */
17033         virtual Model::GetSubnetCidrReservationsOutcomeCallable GetSubnetCidrReservationsCallable(const Model::GetSubnetCidrReservationsRequest& request) const;
17034 
17035         /**
17036          * <p>Gets information about the subnet CIDR reservations.</p><p><h3>See Also:</h3>
17037          * <a
17038          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetSubnetCidrReservations">AWS
17039          * API Reference</a></p>
17040          *
17041          * Queues the request into a thread executor and triggers associated callback when operation has finished.
17042          */
17043         virtual void GetSubnetCidrReservationsAsync(const Model::GetSubnetCidrReservationsRequest& request, const GetSubnetCidrReservationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
17044 
17045         /**
17046          * <p>Lists the route tables to which the specified resource attachment propagates
17047          * routes.</p><p><h3>See Also:</h3>   <a
17048          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetTransitGatewayAttachmentPropagations">AWS
17049          * API Reference</a></p>
17050          */
17051         virtual Model::GetTransitGatewayAttachmentPropagationsOutcome GetTransitGatewayAttachmentPropagations(const Model::GetTransitGatewayAttachmentPropagationsRequest& request) const;
17052 
17053         /**
17054          * <p>Lists the route tables to which the specified resource attachment propagates
17055          * routes.</p><p><h3>See Also:</h3>   <a
17056          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetTransitGatewayAttachmentPropagations">AWS
17057          * API Reference</a></p>
17058          *
17059          * returns a future to the operation so that it can be executed in parallel to other requests.
17060          */
17061         virtual Model::GetTransitGatewayAttachmentPropagationsOutcomeCallable GetTransitGatewayAttachmentPropagationsCallable(const Model::GetTransitGatewayAttachmentPropagationsRequest& request) const;
17062 
17063         /**
17064          * <p>Lists the route tables to which the specified resource attachment propagates
17065          * routes.</p><p><h3>See Also:</h3>   <a
17066          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetTransitGatewayAttachmentPropagations">AWS
17067          * API Reference</a></p>
17068          *
17069          * Queues the request into a thread executor and triggers associated callback when operation has finished.
17070          */
17071         virtual void GetTransitGatewayAttachmentPropagationsAsync(const Model::GetTransitGatewayAttachmentPropagationsRequest& request, const GetTransitGatewayAttachmentPropagationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
17072 
17073         /**
17074          * <p>Gets information about the associations for the transit gateway multicast
17075          * domain.</p><p><h3>See Also:</h3>   <a
17076          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetTransitGatewayMulticastDomainAssociations">AWS
17077          * API Reference</a></p>
17078          */
17079         virtual Model::GetTransitGatewayMulticastDomainAssociationsOutcome GetTransitGatewayMulticastDomainAssociations(const Model::GetTransitGatewayMulticastDomainAssociationsRequest& request) const;
17080 
17081         /**
17082          * <p>Gets information about the associations for the transit gateway multicast
17083          * domain.</p><p><h3>See Also:</h3>   <a
17084          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetTransitGatewayMulticastDomainAssociations">AWS
17085          * API Reference</a></p>
17086          *
17087          * returns a future to the operation so that it can be executed in parallel to other requests.
17088          */
17089         virtual Model::GetTransitGatewayMulticastDomainAssociationsOutcomeCallable GetTransitGatewayMulticastDomainAssociationsCallable(const Model::GetTransitGatewayMulticastDomainAssociationsRequest& request) const;
17090 
17091         /**
17092          * <p>Gets information about the associations for the transit gateway multicast
17093          * domain.</p><p><h3>See Also:</h3>   <a
17094          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetTransitGatewayMulticastDomainAssociations">AWS
17095          * API Reference</a></p>
17096          *
17097          * Queues the request into a thread executor and triggers associated callback when operation has finished.
17098          */
17099         virtual void GetTransitGatewayMulticastDomainAssociationsAsync(const Model::GetTransitGatewayMulticastDomainAssociationsRequest& request, const GetTransitGatewayMulticastDomainAssociationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
17100 
17101         /**
17102          * <p>Gets information about the prefix list references in a specified transit
17103          * gateway route table.</p><p><h3>See Also:</h3>   <a
17104          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetTransitGatewayPrefixListReferences">AWS
17105          * API Reference</a></p>
17106          */
17107         virtual Model::GetTransitGatewayPrefixListReferencesOutcome GetTransitGatewayPrefixListReferences(const Model::GetTransitGatewayPrefixListReferencesRequest& request) const;
17108 
17109         /**
17110          * <p>Gets information about the prefix list references in a specified transit
17111          * gateway route table.</p><p><h3>See Also:</h3>   <a
17112          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetTransitGatewayPrefixListReferences">AWS
17113          * API Reference</a></p>
17114          *
17115          * returns a future to the operation so that it can be executed in parallel to other requests.
17116          */
17117         virtual Model::GetTransitGatewayPrefixListReferencesOutcomeCallable GetTransitGatewayPrefixListReferencesCallable(const Model::GetTransitGatewayPrefixListReferencesRequest& request) const;
17118 
17119         /**
17120          * <p>Gets information about the prefix list references in a specified transit
17121          * gateway route table.</p><p><h3>See Also:</h3>   <a
17122          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetTransitGatewayPrefixListReferences">AWS
17123          * API Reference</a></p>
17124          *
17125          * Queues the request into a thread executor and triggers associated callback when operation has finished.
17126          */
17127         virtual void GetTransitGatewayPrefixListReferencesAsync(const Model::GetTransitGatewayPrefixListReferencesRequest& request, const GetTransitGatewayPrefixListReferencesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
17128 
17129         /**
17130          * <p>Gets information about the associations for the specified transit gateway
17131          * route table.</p><p><h3>See Also:</h3>   <a
17132          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetTransitGatewayRouteTableAssociations">AWS
17133          * API Reference</a></p>
17134          */
17135         virtual Model::GetTransitGatewayRouteTableAssociationsOutcome GetTransitGatewayRouteTableAssociations(const Model::GetTransitGatewayRouteTableAssociationsRequest& request) const;
17136 
17137         /**
17138          * <p>Gets information about the associations for the specified transit gateway
17139          * route table.</p><p><h3>See Also:</h3>   <a
17140          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetTransitGatewayRouteTableAssociations">AWS
17141          * API Reference</a></p>
17142          *
17143          * returns a future to the operation so that it can be executed in parallel to other requests.
17144          */
17145         virtual Model::GetTransitGatewayRouteTableAssociationsOutcomeCallable GetTransitGatewayRouteTableAssociationsCallable(const Model::GetTransitGatewayRouteTableAssociationsRequest& request) const;
17146 
17147         /**
17148          * <p>Gets information about the associations for the specified transit gateway
17149          * route table.</p><p><h3>See Also:</h3>   <a
17150          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetTransitGatewayRouteTableAssociations">AWS
17151          * API Reference</a></p>
17152          *
17153          * Queues the request into a thread executor and triggers associated callback when operation has finished.
17154          */
17155         virtual void GetTransitGatewayRouteTableAssociationsAsync(const Model::GetTransitGatewayRouteTableAssociationsRequest& request, const GetTransitGatewayRouteTableAssociationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
17156 
17157         /**
17158          * <p>Gets information about the route table propagations for the specified transit
17159          * gateway route table.</p><p><h3>See Also:</h3>   <a
17160          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetTransitGatewayRouteTablePropagations">AWS
17161          * API Reference</a></p>
17162          */
17163         virtual Model::GetTransitGatewayRouteTablePropagationsOutcome GetTransitGatewayRouteTablePropagations(const Model::GetTransitGatewayRouteTablePropagationsRequest& request) const;
17164 
17165         /**
17166          * <p>Gets information about the route table propagations for the specified transit
17167          * gateway route table.</p><p><h3>See Also:</h3>   <a
17168          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetTransitGatewayRouteTablePropagations">AWS
17169          * API Reference</a></p>
17170          *
17171          * returns a future to the operation so that it can be executed in parallel to other requests.
17172          */
17173         virtual Model::GetTransitGatewayRouteTablePropagationsOutcomeCallable GetTransitGatewayRouteTablePropagationsCallable(const Model::GetTransitGatewayRouteTablePropagationsRequest& request) const;
17174 
17175         /**
17176          * <p>Gets information about the route table propagations for the specified transit
17177          * gateway route table.</p><p><h3>See Also:</h3>   <a
17178          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetTransitGatewayRouteTablePropagations">AWS
17179          * API Reference</a></p>
17180          *
17181          * Queues the request into a thread executor and triggers associated callback when operation has finished.
17182          */
17183         virtual void GetTransitGatewayRouteTablePropagationsAsync(const Model::GetTransitGatewayRouteTablePropagationsRequest& request, const GetTransitGatewayRouteTablePropagationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
17184 
17185         /**
17186          * <p>Download an Amazon Web Services-provided sample configuration file to be used
17187          * with the customer gateway device specified for your Site-to-Site VPN
17188          * connection.</p><p><h3>See Also:</h3>   <a
17189          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetVpnConnectionDeviceSampleConfiguration">AWS
17190          * API Reference</a></p>
17191          */
17192         virtual Model::GetVpnConnectionDeviceSampleConfigurationOutcome GetVpnConnectionDeviceSampleConfiguration(const Model::GetVpnConnectionDeviceSampleConfigurationRequest& request) const;
17193 
17194         /**
17195          * <p>Download an Amazon Web Services-provided sample configuration file to be used
17196          * with the customer gateway device specified for your Site-to-Site VPN
17197          * connection.</p><p><h3>See Also:</h3>   <a
17198          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetVpnConnectionDeviceSampleConfiguration">AWS
17199          * API Reference</a></p>
17200          *
17201          * returns a future to the operation so that it can be executed in parallel to other requests.
17202          */
17203         virtual Model::GetVpnConnectionDeviceSampleConfigurationOutcomeCallable GetVpnConnectionDeviceSampleConfigurationCallable(const Model::GetVpnConnectionDeviceSampleConfigurationRequest& request) const;
17204 
17205         /**
17206          * <p>Download an Amazon Web Services-provided sample configuration file to be used
17207          * with the customer gateway device specified for your Site-to-Site VPN
17208          * connection.</p><p><h3>See Also:</h3>   <a
17209          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetVpnConnectionDeviceSampleConfiguration">AWS
17210          * API Reference</a></p>
17211          *
17212          * Queues the request into a thread executor and triggers associated callback when operation has finished.
17213          */
17214         virtual void GetVpnConnectionDeviceSampleConfigurationAsync(const Model::GetVpnConnectionDeviceSampleConfigurationRequest& request, const GetVpnConnectionDeviceSampleConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
17215 
17216         /**
17217          * <p>Obtain a list of customer gateway devices for which sample configuration
17218          * files can be provided. The request has no additional parameters. You can also
17219          * see the list of device types with sample configuration files available under <a
17220          * href="https://docs.aws.amazon.com/vpn/latest/s2svpn/your-cgw.html">Your customer
17221          * gateway device</a> in the <i>Amazon Web Services Site-to-Site VPN User
17222          * Guide</i>.</p><p><h3>See Also:</h3>   <a
17223          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetVpnConnectionDeviceTypes">AWS
17224          * API Reference</a></p>
17225          */
17226         virtual Model::GetVpnConnectionDeviceTypesOutcome GetVpnConnectionDeviceTypes(const Model::GetVpnConnectionDeviceTypesRequest& request) const;
17227 
17228         /**
17229          * <p>Obtain a list of customer gateway devices for which sample configuration
17230          * files can be provided. The request has no additional parameters. You can also
17231          * see the list of device types with sample configuration files available under <a
17232          * href="https://docs.aws.amazon.com/vpn/latest/s2svpn/your-cgw.html">Your customer
17233          * gateway device</a> in the <i>Amazon Web Services Site-to-Site VPN User
17234          * Guide</i>.</p><p><h3>See Also:</h3>   <a
17235          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetVpnConnectionDeviceTypes">AWS
17236          * API Reference</a></p>
17237          *
17238          * returns a future to the operation so that it can be executed in parallel to other requests.
17239          */
17240         virtual Model::GetVpnConnectionDeviceTypesOutcomeCallable GetVpnConnectionDeviceTypesCallable(const Model::GetVpnConnectionDeviceTypesRequest& request) const;
17241 
17242         /**
17243          * <p>Obtain a list of customer gateway devices for which sample configuration
17244          * files can be provided. The request has no additional parameters. You can also
17245          * see the list of device types with sample configuration files available under <a
17246          * href="https://docs.aws.amazon.com/vpn/latest/s2svpn/your-cgw.html">Your customer
17247          * gateway device</a> in the <i>Amazon Web Services Site-to-Site VPN User
17248          * Guide</i>.</p><p><h3>See Also:</h3>   <a
17249          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetVpnConnectionDeviceTypes">AWS
17250          * API Reference</a></p>
17251          *
17252          * Queues the request into a thread executor and triggers associated callback when operation has finished.
17253          */
17254         virtual void GetVpnConnectionDeviceTypesAsync(const Model::GetVpnConnectionDeviceTypesRequest& request, const GetVpnConnectionDeviceTypesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
17255 
17256         /**
17257          * <p>Uploads a client certificate revocation list to the specified Client VPN
17258          * endpoint. Uploading a client certificate revocation list overwrites the existing
17259          * client certificate revocation list.</p> <p>Uploading a client certificate
17260          * revocation list resets existing client connections.</p><p><h3>See Also:</h3>
17261          * <a
17262          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ImportClientVpnClientCertificateRevocationList">AWS
17263          * API Reference</a></p>
17264          */
17265         virtual Model::ImportClientVpnClientCertificateRevocationListOutcome ImportClientVpnClientCertificateRevocationList(const Model::ImportClientVpnClientCertificateRevocationListRequest& request) const;
17266 
17267         /**
17268          * <p>Uploads a client certificate revocation list to the specified Client VPN
17269          * endpoint. Uploading a client certificate revocation list overwrites the existing
17270          * client certificate revocation list.</p> <p>Uploading a client certificate
17271          * revocation list resets existing client connections.</p><p><h3>See Also:</h3>
17272          * <a
17273          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ImportClientVpnClientCertificateRevocationList">AWS
17274          * API Reference</a></p>
17275          *
17276          * returns a future to the operation so that it can be executed in parallel to other requests.
17277          */
17278         virtual Model::ImportClientVpnClientCertificateRevocationListOutcomeCallable ImportClientVpnClientCertificateRevocationListCallable(const Model::ImportClientVpnClientCertificateRevocationListRequest& request) const;
17279 
17280         /**
17281          * <p>Uploads a client certificate revocation list to the specified Client VPN
17282          * endpoint. Uploading a client certificate revocation list overwrites the existing
17283          * client certificate revocation list.</p> <p>Uploading a client certificate
17284          * revocation list resets existing client connections.</p><p><h3>See Also:</h3>
17285          * <a
17286          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ImportClientVpnClientCertificateRevocationList">AWS
17287          * API Reference</a></p>
17288          *
17289          * Queues the request into a thread executor and triggers associated callback when operation has finished.
17290          */
17291         virtual void ImportClientVpnClientCertificateRevocationListAsync(const Model::ImportClientVpnClientCertificateRevocationListRequest& request, const ImportClientVpnClientCertificateRevocationListResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
17292 
17293         /**
17294          * <p>Import single or multi-volume disk images or EBS snapshots into an Amazon
17295          * Machine Image (AMI).</p> <p>For more information, see <a
17296          * href="https://docs.aws.amazon.com/vm-import/latest/userguide/vmimport-image-import.html">Importing
17297          * a VM as an image using VM Import/Export</a> in the <i>VM Import/Export User
17298          * Guide</i>.</p><p><h3>See Also:</h3>   <a
17299          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ImportImage">AWS API
17300          * Reference</a></p>
17301          */
17302         virtual Model::ImportImageOutcome ImportImage(const Model::ImportImageRequest& request) const;
17303 
17304         /**
17305          * <p>Import single or multi-volume disk images or EBS snapshots into an Amazon
17306          * Machine Image (AMI).</p> <p>For more information, see <a
17307          * href="https://docs.aws.amazon.com/vm-import/latest/userguide/vmimport-image-import.html">Importing
17308          * a VM as an image using VM Import/Export</a> in the <i>VM Import/Export User
17309          * Guide</i>.</p><p><h3>See Also:</h3>   <a
17310          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ImportImage">AWS API
17311          * Reference</a></p>
17312          *
17313          * returns a future to the operation so that it can be executed in parallel to other requests.
17314          */
17315         virtual Model::ImportImageOutcomeCallable ImportImageCallable(const Model::ImportImageRequest& request) const;
17316 
17317         /**
17318          * <p>Import single or multi-volume disk images or EBS snapshots into an Amazon
17319          * Machine Image (AMI).</p> <p>For more information, see <a
17320          * href="https://docs.aws.amazon.com/vm-import/latest/userguide/vmimport-image-import.html">Importing
17321          * a VM as an image using VM Import/Export</a> in the <i>VM Import/Export User
17322          * Guide</i>.</p><p><h3>See Also:</h3>   <a
17323          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ImportImage">AWS API
17324          * Reference</a></p>
17325          *
17326          * Queues the request into a thread executor and triggers associated callback when operation has finished.
17327          */
17328         virtual void ImportImageAsync(const Model::ImportImageRequest& request, const ImportImageResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
17329 
17330         /**
17331          * <p>Creates an import instance task using metadata from the specified disk
17332          * image.</p> <p>This API action supports only single-volume VMs. To import
17333          * multi-volume VMs, use <a>ImportImage</a> instead.</p> <p>This API action is not
17334          * supported by the Command Line Interface (CLI). For information about using the
17335          * Amazon EC2 CLI, which is deprecated, see <a
17336          * href="https://awsdocs.s3.amazonaws.com/EC2/ec2-clt.pdf#UsingVirtualMachinesinAmazonEC2">Importing
17337          * a VM to Amazon EC2</a> in the <i>Amazon EC2 CLI Reference</i> PDF file.</p>
17338          * <p>For information about the import manifest referenced by this API action, see
17339          * <a
17340          * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/manifest.html">VM
17341          * Import Manifest</a>.</p><p><h3>See Also:</h3>   <a
17342          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ImportInstance">AWS
17343          * API Reference</a></p>
17344          */
17345         virtual Model::ImportInstanceOutcome ImportInstance(const Model::ImportInstanceRequest& request) const;
17346 
17347         /**
17348          * <p>Creates an import instance task using metadata from the specified disk
17349          * image.</p> <p>This API action supports only single-volume VMs. To import
17350          * multi-volume VMs, use <a>ImportImage</a> instead.</p> <p>This API action is not
17351          * supported by the Command Line Interface (CLI). For information about using the
17352          * Amazon EC2 CLI, which is deprecated, see <a
17353          * href="https://awsdocs.s3.amazonaws.com/EC2/ec2-clt.pdf#UsingVirtualMachinesinAmazonEC2">Importing
17354          * a VM to Amazon EC2</a> in the <i>Amazon EC2 CLI Reference</i> PDF file.</p>
17355          * <p>For information about the import manifest referenced by this API action, see
17356          * <a
17357          * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/manifest.html">VM
17358          * Import Manifest</a>.</p><p><h3>See Also:</h3>   <a
17359          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ImportInstance">AWS
17360          * API Reference</a></p>
17361          *
17362          * returns a future to the operation so that it can be executed in parallel to other requests.
17363          */
17364         virtual Model::ImportInstanceOutcomeCallable ImportInstanceCallable(const Model::ImportInstanceRequest& request) const;
17365 
17366         /**
17367          * <p>Creates an import instance task using metadata from the specified disk
17368          * image.</p> <p>This API action supports only single-volume VMs. To import
17369          * multi-volume VMs, use <a>ImportImage</a> instead.</p> <p>This API action is not
17370          * supported by the Command Line Interface (CLI). For information about using the
17371          * Amazon EC2 CLI, which is deprecated, see <a
17372          * href="https://awsdocs.s3.amazonaws.com/EC2/ec2-clt.pdf#UsingVirtualMachinesinAmazonEC2">Importing
17373          * a VM to Amazon EC2</a> in the <i>Amazon EC2 CLI Reference</i> PDF file.</p>
17374          * <p>For information about the import manifest referenced by this API action, see
17375          * <a
17376          * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/manifest.html">VM
17377          * Import Manifest</a>.</p><p><h3>See Also:</h3>   <a
17378          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ImportInstance">AWS
17379          * API Reference</a></p>
17380          *
17381          * Queues the request into a thread executor and triggers associated callback when operation has finished.
17382          */
17383         virtual void ImportInstanceAsync(const Model::ImportInstanceRequest& request, const ImportInstanceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
17384 
17385         /**
17386          * <p>Imports the public key from an RSA or ED25519 key pair that you created with
17387          * a third-party tool. Compare this with <a>CreateKeyPair</a>, in which Amazon Web
17388          * Services creates the key pair and gives the keys to you (Amazon Web Services
17389          * keeps a copy of the public key). With ImportKeyPair, you create the key pair and
17390          * give Amazon Web Services just the public key. The private key is never
17391          * transferred between you and Amazon Web Services.</p> <p>For more information
17392          * about key pairs, see <a
17393          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html">Amazon
17394          * EC2 key pairs</a> in the <i>Amazon Elastic Compute Cloud User
17395          * Guide</i>.</p><p><h3>See Also:</h3>   <a
17396          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ImportKeyPair">AWS
17397          * API Reference</a></p>
17398          */
17399         virtual Model::ImportKeyPairOutcome ImportKeyPair(const Model::ImportKeyPairRequest& request) const;
17400 
17401         /**
17402          * <p>Imports the public key from an RSA or ED25519 key pair that you created with
17403          * a third-party tool. Compare this with <a>CreateKeyPair</a>, in which Amazon Web
17404          * Services creates the key pair and gives the keys to you (Amazon Web Services
17405          * keeps a copy of the public key). With ImportKeyPair, you create the key pair and
17406          * give Amazon Web Services just the public key. The private key is never
17407          * transferred between you and Amazon Web Services.</p> <p>For more information
17408          * about key pairs, see <a
17409          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html">Amazon
17410          * EC2 key pairs</a> in the <i>Amazon Elastic Compute Cloud User
17411          * Guide</i>.</p><p><h3>See Also:</h3>   <a
17412          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ImportKeyPair">AWS
17413          * API Reference</a></p>
17414          *
17415          * returns a future to the operation so that it can be executed in parallel to other requests.
17416          */
17417         virtual Model::ImportKeyPairOutcomeCallable ImportKeyPairCallable(const Model::ImportKeyPairRequest& request) const;
17418 
17419         /**
17420          * <p>Imports the public key from an RSA or ED25519 key pair that you created with
17421          * a third-party tool. Compare this with <a>CreateKeyPair</a>, in which Amazon Web
17422          * Services creates the key pair and gives the keys to you (Amazon Web Services
17423          * keeps a copy of the public key). With ImportKeyPair, you create the key pair and
17424          * give Amazon Web Services just the public key. The private key is never
17425          * transferred between you and Amazon Web Services.</p> <p>For more information
17426          * about key pairs, see <a
17427          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html">Amazon
17428          * EC2 key pairs</a> in the <i>Amazon Elastic Compute Cloud User
17429          * Guide</i>.</p><p><h3>See Also:</h3>   <a
17430          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ImportKeyPair">AWS
17431          * API Reference</a></p>
17432          *
17433          * Queues the request into a thread executor and triggers associated callback when operation has finished.
17434          */
17435         virtual void ImportKeyPairAsync(const Model::ImportKeyPairRequest& request, const ImportKeyPairResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
17436 
17437         /**
17438          * <p>Imports a disk into an EBS snapshot.</p> <p>For more information, see <a
17439          * href="https://docs.aws.amazon.com/vm-import/latest/userguide/vmimport-import-snapshot.html">Importing
17440          * a disk as a snapshot using VM Import/Export</a> in the <i>VM Import/Export User
17441          * Guide</i>.</p><p><h3>See Also:</h3>   <a
17442          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ImportSnapshot">AWS
17443          * API Reference</a></p>
17444          */
17445         virtual Model::ImportSnapshotOutcome ImportSnapshot(const Model::ImportSnapshotRequest& request) const;
17446 
17447         /**
17448          * <p>Imports a disk into an EBS snapshot.</p> <p>For more information, see <a
17449          * href="https://docs.aws.amazon.com/vm-import/latest/userguide/vmimport-import-snapshot.html">Importing
17450          * a disk as a snapshot using VM Import/Export</a> in the <i>VM Import/Export User
17451          * Guide</i>.</p><p><h3>See Also:</h3>   <a
17452          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ImportSnapshot">AWS
17453          * API Reference</a></p>
17454          *
17455          * returns a future to the operation so that it can be executed in parallel to other requests.
17456          */
17457         virtual Model::ImportSnapshotOutcomeCallable ImportSnapshotCallable(const Model::ImportSnapshotRequest& request) const;
17458 
17459         /**
17460          * <p>Imports a disk into an EBS snapshot.</p> <p>For more information, see <a
17461          * href="https://docs.aws.amazon.com/vm-import/latest/userguide/vmimport-import-snapshot.html">Importing
17462          * a disk as a snapshot using VM Import/Export</a> in the <i>VM Import/Export User
17463          * Guide</i>.</p><p><h3>See Also:</h3>   <a
17464          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ImportSnapshot">AWS
17465          * API Reference</a></p>
17466          *
17467          * Queues the request into a thread executor and triggers associated callback when operation has finished.
17468          */
17469         virtual void ImportSnapshotAsync(const Model::ImportSnapshotRequest& request, const ImportSnapshotResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
17470 
17471         /**
17472          * <p>Creates an import volume task using metadata from the specified disk
17473          * image.</p> <p>This API action supports only single-volume VMs. To import
17474          * multi-volume VMs, use <a>ImportImage</a> instead. To import a disk to a
17475          * snapshot, use <a>ImportSnapshot</a> instead.</p> <p>This API action is not
17476          * supported by the Command Line Interface (CLI). For information about using the
17477          * Amazon EC2 CLI, which is deprecated, see <a
17478          * href="https://awsdocs.s3.amazonaws.com/EC2/ec2-clt.pdf#importing-your-volumes-into-amazon-ebs">Importing
17479          * Disks to Amazon EBS</a> in the <i>Amazon EC2 CLI Reference</i> PDF file.</p>
17480          * <p>For information about the import manifest referenced by this API action, see
17481          * <a
17482          * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/manifest.html">VM
17483          * Import Manifest</a>.</p><p><h3>See Also:</h3>   <a
17484          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ImportVolume">AWS
17485          * API Reference</a></p>
17486          */
17487         virtual Model::ImportVolumeOutcome ImportVolume(const Model::ImportVolumeRequest& request) const;
17488 
17489         /**
17490          * <p>Creates an import volume task using metadata from the specified disk
17491          * image.</p> <p>This API action supports only single-volume VMs. To import
17492          * multi-volume VMs, use <a>ImportImage</a> instead. To import a disk to a
17493          * snapshot, use <a>ImportSnapshot</a> instead.</p> <p>This API action is not
17494          * supported by the Command Line Interface (CLI). For information about using the
17495          * Amazon EC2 CLI, which is deprecated, see <a
17496          * href="https://awsdocs.s3.amazonaws.com/EC2/ec2-clt.pdf#importing-your-volumes-into-amazon-ebs">Importing
17497          * Disks to Amazon EBS</a> in the <i>Amazon EC2 CLI Reference</i> PDF file.</p>
17498          * <p>For information about the import manifest referenced by this API action, see
17499          * <a
17500          * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/manifest.html">VM
17501          * Import Manifest</a>.</p><p><h3>See Also:</h3>   <a
17502          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ImportVolume">AWS
17503          * API Reference</a></p>
17504          *
17505          * returns a future to the operation so that it can be executed in parallel to other requests.
17506          */
17507         virtual Model::ImportVolumeOutcomeCallable ImportVolumeCallable(const Model::ImportVolumeRequest& request) const;
17508 
17509         /**
17510          * <p>Creates an import volume task using metadata from the specified disk
17511          * image.</p> <p>This API action supports only single-volume VMs. To import
17512          * multi-volume VMs, use <a>ImportImage</a> instead. To import a disk to a
17513          * snapshot, use <a>ImportSnapshot</a> instead.</p> <p>This API action is not
17514          * supported by the Command Line Interface (CLI). For information about using the
17515          * Amazon EC2 CLI, which is deprecated, see <a
17516          * href="https://awsdocs.s3.amazonaws.com/EC2/ec2-clt.pdf#importing-your-volumes-into-amazon-ebs">Importing
17517          * Disks to Amazon EBS</a> in the <i>Amazon EC2 CLI Reference</i> PDF file.</p>
17518          * <p>For information about the import manifest referenced by this API action, see
17519          * <a
17520          * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/manifest.html">VM
17521          * Import Manifest</a>.</p><p><h3>See Also:</h3>   <a
17522          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ImportVolume">AWS
17523          * API Reference</a></p>
17524          *
17525          * Queues the request into a thread executor and triggers associated callback when operation has finished.
17526          */
17527         virtual void ImportVolumeAsync(const Model::ImportVolumeRequest& request, const ImportVolumeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
17528 
17529         /**
17530          * <p>Modifies an attribute of the specified Elastic IP address. For requirements,
17531          * see <a
17532          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html#Using_Elastic_Addressing_Reverse_DNS">Using
17533          * reverse DNS for email applications</a>.</p><p><h3>See Also:</h3>   <a
17534          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyAddressAttribute">AWS
17535          * API Reference</a></p>
17536          */
17537         virtual Model::ModifyAddressAttributeOutcome ModifyAddressAttribute(const Model::ModifyAddressAttributeRequest& request) const;
17538 
17539         /**
17540          * <p>Modifies an attribute of the specified Elastic IP address. For requirements,
17541          * see <a
17542          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html#Using_Elastic_Addressing_Reverse_DNS">Using
17543          * reverse DNS for email applications</a>.</p><p><h3>See Also:</h3>   <a
17544          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyAddressAttribute">AWS
17545          * API Reference</a></p>
17546          *
17547          * returns a future to the operation so that it can be executed in parallel to other requests.
17548          */
17549         virtual Model::ModifyAddressAttributeOutcomeCallable ModifyAddressAttributeCallable(const Model::ModifyAddressAttributeRequest& request) const;
17550 
17551         /**
17552          * <p>Modifies an attribute of the specified Elastic IP address. For requirements,
17553          * see <a
17554          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html#Using_Elastic_Addressing_Reverse_DNS">Using
17555          * reverse DNS for email applications</a>.</p><p><h3>See Also:</h3>   <a
17556          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyAddressAttribute">AWS
17557          * API Reference</a></p>
17558          *
17559          * Queues the request into a thread executor and triggers associated callback when operation has finished.
17560          */
17561         virtual void ModifyAddressAttributeAsync(const Model::ModifyAddressAttributeRequest& request, const ModifyAddressAttributeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
17562 
17563         /**
17564          * <p>Changes the opt-in status of the Local Zone and Wavelength Zone group for
17565          * your account.</p> <p>Use <a
17566          * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeAvailabilityZones.html">
17567          * DescribeAvailabilityZones</a> to view the value for
17568          * <code>GroupName</code>.</p><p><h3>See Also:</h3>   <a
17569          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyAvailabilityZoneGroup">AWS
17570          * API Reference</a></p>
17571          */
17572         virtual Model::ModifyAvailabilityZoneGroupOutcome ModifyAvailabilityZoneGroup(const Model::ModifyAvailabilityZoneGroupRequest& request) const;
17573 
17574         /**
17575          * <p>Changes the opt-in status of the Local Zone and Wavelength Zone group for
17576          * your account.</p> <p>Use <a
17577          * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeAvailabilityZones.html">
17578          * DescribeAvailabilityZones</a> to view the value for
17579          * <code>GroupName</code>.</p><p><h3>See Also:</h3>   <a
17580          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyAvailabilityZoneGroup">AWS
17581          * API Reference</a></p>
17582          *
17583          * returns a future to the operation so that it can be executed in parallel to other requests.
17584          */
17585         virtual Model::ModifyAvailabilityZoneGroupOutcomeCallable ModifyAvailabilityZoneGroupCallable(const Model::ModifyAvailabilityZoneGroupRequest& request) const;
17586 
17587         /**
17588          * <p>Changes the opt-in status of the Local Zone and Wavelength Zone group for
17589          * your account.</p> <p>Use <a
17590          * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeAvailabilityZones.html">
17591          * DescribeAvailabilityZones</a> to view the value for
17592          * <code>GroupName</code>.</p><p><h3>See Also:</h3>   <a
17593          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyAvailabilityZoneGroup">AWS
17594          * API Reference</a></p>
17595          *
17596          * Queues the request into a thread executor and triggers associated callback when operation has finished.
17597          */
17598         virtual void ModifyAvailabilityZoneGroupAsync(const Model::ModifyAvailabilityZoneGroupRequest& request, const ModifyAvailabilityZoneGroupResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
17599 
17600         /**
17601          * <p>Modifies a Capacity Reservation's capacity and the conditions under which it
17602          * is to be released. You cannot change a Capacity Reservation's instance type, EBS
17603          * optimization, instance store settings, platform, Availability Zone, or instance
17604          * eligibility. If you need to modify any of these attributes, we recommend that
17605          * you cancel the Capacity Reservation, and then create a new one with the required
17606          * attributes.</p><p><h3>See Also:</h3>   <a
17607          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyCapacityReservation">AWS
17608          * API Reference</a></p>
17609          */
17610         virtual Model::ModifyCapacityReservationOutcome ModifyCapacityReservation(const Model::ModifyCapacityReservationRequest& request) const;
17611 
17612         /**
17613          * <p>Modifies a Capacity Reservation's capacity and the conditions under which it
17614          * is to be released. You cannot change a Capacity Reservation's instance type, EBS
17615          * optimization, instance store settings, platform, Availability Zone, or instance
17616          * eligibility. If you need to modify any of these attributes, we recommend that
17617          * you cancel the Capacity Reservation, and then create a new one with the required
17618          * attributes.</p><p><h3>See Also:</h3>   <a
17619          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyCapacityReservation">AWS
17620          * API Reference</a></p>
17621          *
17622          * returns a future to the operation so that it can be executed in parallel to other requests.
17623          */
17624         virtual Model::ModifyCapacityReservationOutcomeCallable ModifyCapacityReservationCallable(const Model::ModifyCapacityReservationRequest& request) const;
17625 
17626         /**
17627          * <p>Modifies a Capacity Reservation's capacity and the conditions under which it
17628          * is to be released. You cannot change a Capacity Reservation's instance type, EBS
17629          * optimization, instance store settings, platform, Availability Zone, or instance
17630          * eligibility. If you need to modify any of these attributes, we recommend that
17631          * you cancel the Capacity Reservation, and then create a new one with the required
17632          * attributes.</p><p><h3>See Also:</h3>   <a
17633          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyCapacityReservation">AWS
17634          * API Reference</a></p>
17635          *
17636          * Queues the request into a thread executor and triggers associated callback when operation has finished.
17637          */
17638         virtual void ModifyCapacityReservationAsync(const Model::ModifyCapacityReservationRequest& request, const ModifyCapacityReservationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
17639 
17640         /**
17641          * <p>Modifies a Capacity Reservation Fleet.</p> <p>When you modify the total
17642          * target capacity of a Capacity Reservation Fleet, the Fleet automatically creates
17643          * new Capacity Reservations, or modifies or cancels existing Capacity Reservations
17644          * in the Fleet to meet the new total target capacity. When you modify the end date
17645          * for the Fleet, the end dates for all of the individual Capacity Reservations in
17646          * the Fleet are updated accordingly.</p><p><h3>See Also:</h3>   <a
17647          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyCapacityReservationFleet">AWS
17648          * API Reference</a></p>
17649          */
17650         virtual Model::ModifyCapacityReservationFleetOutcome ModifyCapacityReservationFleet(const Model::ModifyCapacityReservationFleetRequest& request) const;
17651 
17652         /**
17653          * <p>Modifies a Capacity Reservation Fleet.</p> <p>When you modify the total
17654          * target capacity of a Capacity Reservation Fleet, the Fleet automatically creates
17655          * new Capacity Reservations, or modifies or cancels existing Capacity Reservations
17656          * in the Fleet to meet the new total target capacity. When you modify the end date
17657          * for the Fleet, the end dates for all of the individual Capacity Reservations in
17658          * the Fleet are updated accordingly.</p><p><h3>See Also:</h3>   <a
17659          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyCapacityReservationFleet">AWS
17660          * API Reference</a></p>
17661          *
17662          * returns a future to the operation so that it can be executed in parallel to other requests.
17663          */
17664         virtual Model::ModifyCapacityReservationFleetOutcomeCallable ModifyCapacityReservationFleetCallable(const Model::ModifyCapacityReservationFleetRequest& request) const;
17665 
17666         /**
17667          * <p>Modifies a Capacity Reservation Fleet.</p> <p>When you modify the total
17668          * target capacity of a Capacity Reservation Fleet, the Fleet automatically creates
17669          * new Capacity Reservations, or modifies or cancels existing Capacity Reservations
17670          * in the Fleet to meet the new total target capacity. When you modify the end date
17671          * for the Fleet, the end dates for all of the individual Capacity Reservations in
17672          * the Fleet are updated accordingly.</p><p><h3>See Also:</h3>   <a
17673          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyCapacityReservationFleet">AWS
17674          * API Reference</a></p>
17675          *
17676          * Queues the request into a thread executor and triggers associated callback when operation has finished.
17677          */
17678         virtual void ModifyCapacityReservationFleetAsync(const Model::ModifyCapacityReservationFleetRequest& request, const ModifyCapacityReservationFleetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
17679 
17680         /**
17681          * <p>Modifies the specified Client VPN endpoint. Modifying the DNS server resets
17682          * existing client connections.</p><p><h3>See Also:</h3>   <a
17683          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyClientVpnEndpoint">AWS
17684          * API Reference</a></p>
17685          */
17686         virtual Model::ModifyClientVpnEndpointOutcome ModifyClientVpnEndpoint(const Model::ModifyClientVpnEndpointRequest& request) const;
17687 
17688         /**
17689          * <p>Modifies the specified Client VPN endpoint. Modifying the DNS server resets
17690          * existing client connections.</p><p><h3>See Also:</h3>   <a
17691          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyClientVpnEndpoint">AWS
17692          * API Reference</a></p>
17693          *
17694          * returns a future to the operation so that it can be executed in parallel to other requests.
17695          */
17696         virtual Model::ModifyClientVpnEndpointOutcomeCallable ModifyClientVpnEndpointCallable(const Model::ModifyClientVpnEndpointRequest& request) const;
17697 
17698         /**
17699          * <p>Modifies the specified Client VPN endpoint. Modifying the DNS server resets
17700          * existing client connections.</p><p><h3>See Also:</h3>   <a
17701          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyClientVpnEndpoint">AWS
17702          * API Reference</a></p>
17703          *
17704          * Queues the request into a thread executor and triggers associated callback when operation has finished.
17705          */
17706         virtual void ModifyClientVpnEndpointAsync(const Model::ModifyClientVpnEndpointRequest& request, const ModifyClientVpnEndpointResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
17707 
17708         /**
17709          * <p>Modifies the default credit option for CPU usage of burstable performance
17710          * instances. The default credit option is set at the account level per Amazon Web
17711          * Services Region, and is specified per instance family. All new burstable
17712          * performance instances in the account launch using the default credit option.</p>
17713          * <p> <code>ModifyDefaultCreditSpecification</code> is an asynchronous operation,
17714          * which works at an Amazon Web Services Region level and modifies the credit
17715          * option for each Availability Zone. All zones in a Region are updated within five
17716          * minutes. But if instances are launched during this operation, they might not get
17717          * the new credit option until the zone is updated. To verify whether the update
17718          * has occurred, you can call <code>GetDefaultCreditSpecification</code> and check
17719          * <code>DefaultCreditSpecification</code> for updates.</p> <p>For more
17720          * information, see <a
17721          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html">Burstable
17722          * performance instances</a> in the <i>Amazon EC2 User Guide</i>.</p><p><h3>See
17723          * Also:</h3>   <a
17724          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyDefaultCreditSpecification">AWS
17725          * API Reference</a></p>
17726          */
17727         virtual Model::ModifyDefaultCreditSpecificationOutcome ModifyDefaultCreditSpecification(const Model::ModifyDefaultCreditSpecificationRequest& request) const;
17728 
17729         /**
17730          * <p>Modifies the default credit option for CPU usage of burstable performance
17731          * instances. The default credit option is set at the account level per Amazon Web
17732          * Services Region, and is specified per instance family. All new burstable
17733          * performance instances in the account launch using the default credit option.</p>
17734          * <p> <code>ModifyDefaultCreditSpecification</code> is an asynchronous operation,
17735          * which works at an Amazon Web Services Region level and modifies the credit
17736          * option for each Availability Zone. All zones in a Region are updated within five
17737          * minutes. But if instances are launched during this operation, they might not get
17738          * the new credit option until the zone is updated. To verify whether the update
17739          * has occurred, you can call <code>GetDefaultCreditSpecification</code> and check
17740          * <code>DefaultCreditSpecification</code> for updates.</p> <p>For more
17741          * information, see <a
17742          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html">Burstable
17743          * performance instances</a> in the <i>Amazon EC2 User Guide</i>.</p><p><h3>See
17744          * Also:</h3>   <a
17745          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyDefaultCreditSpecification">AWS
17746          * API Reference</a></p>
17747          *
17748          * returns a future to the operation so that it can be executed in parallel to other requests.
17749          */
17750         virtual Model::ModifyDefaultCreditSpecificationOutcomeCallable ModifyDefaultCreditSpecificationCallable(const Model::ModifyDefaultCreditSpecificationRequest& request) const;
17751 
17752         /**
17753          * <p>Modifies the default credit option for CPU usage of burstable performance
17754          * instances. The default credit option is set at the account level per Amazon Web
17755          * Services Region, and is specified per instance family. All new burstable
17756          * performance instances in the account launch using the default credit option.</p>
17757          * <p> <code>ModifyDefaultCreditSpecification</code> is an asynchronous operation,
17758          * which works at an Amazon Web Services Region level and modifies the credit
17759          * option for each Availability Zone. All zones in a Region are updated within five
17760          * minutes. But if instances are launched during this operation, they might not get
17761          * the new credit option until the zone is updated. To verify whether the update
17762          * has occurred, you can call <code>GetDefaultCreditSpecification</code> and check
17763          * <code>DefaultCreditSpecification</code> for updates.</p> <p>For more
17764          * information, see <a
17765          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html">Burstable
17766          * performance instances</a> in the <i>Amazon EC2 User Guide</i>.</p><p><h3>See
17767          * Also:</h3>   <a
17768          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyDefaultCreditSpecification">AWS
17769          * API Reference</a></p>
17770          *
17771          * Queues the request into a thread executor and triggers associated callback when operation has finished.
17772          */
17773         virtual void ModifyDefaultCreditSpecificationAsync(const Model::ModifyDefaultCreditSpecificationRequest& request, const ModifyDefaultCreditSpecificationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
17774 
17775         /**
17776          * <p>Changes the default KMS key for EBS encryption by default for your account in
17777          * this Region.</p> <p>Amazon Web Services creates a unique Amazon Web Services
17778          * managed KMS key in each Region for use with encryption by default. If you change
17779          * the default KMS key to a symmetric customer managed KMS key, it is used instead
17780          * of the Amazon Web Services managed KMS key. To reset the default KMS key to the
17781          * Amazon Web Services managed KMS key for EBS, use <a>ResetEbsDefaultKmsKeyId</a>.
17782          * Amazon EBS does not support asymmetric KMS keys.</p> <p>If you delete or disable
17783          * the customer managed KMS key that you specified for use with encryption by
17784          * default, your instances will fail to launch.</p> <p>For more information, see <a
17785          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html">Amazon
17786          * EBS encryption</a> in the <i>Amazon Elastic Compute Cloud User
17787          * Guide</i>.</p><p><h3>See Also:</h3>   <a
17788          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyEbsDefaultKmsKeyId">AWS
17789          * API Reference</a></p>
17790          */
17791         virtual Model::ModifyEbsDefaultKmsKeyIdOutcome ModifyEbsDefaultKmsKeyId(const Model::ModifyEbsDefaultKmsKeyIdRequest& request) const;
17792 
17793         /**
17794          * <p>Changes the default KMS key for EBS encryption by default for your account in
17795          * this Region.</p> <p>Amazon Web Services creates a unique Amazon Web Services
17796          * managed KMS key in each Region for use with encryption by default. If you change
17797          * the default KMS key to a symmetric customer managed KMS key, it is used instead
17798          * of the Amazon Web Services managed KMS key. To reset the default KMS key to the
17799          * Amazon Web Services managed KMS key for EBS, use <a>ResetEbsDefaultKmsKeyId</a>.
17800          * Amazon EBS does not support asymmetric KMS keys.</p> <p>If you delete or disable
17801          * the customer managed KMS key that you specified for use with encryption by
17802          * default, your instances will fail to launch.</p> <p>For more information, see <a
17803          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html">Amazon
17804          * EBS encryption</a> in the <i>Amazon Elastic Compute Cloud User
17805          * Guide</i>.</p><p><h3>See Also:</h3>   <a
17806          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyEbsDefaultKmsKeyId">AWS
17807          * API Reference</a></p>
17808          *
17809          * returns a future to the operation so that it can be executed in parallel to other requests.
17810          */
17811         virtual Model::ModifyEbsDefaultKmsKeyIdOutcomeCallable ModifyEbsDefaultKmsKeyIdCallable(const Model::ModifyEbsDefaultKmsKeyIdRequest& request) const;
17812 
17813         /**
17814          * <p>Changes the default KMS key for EBS encryption by default for your account in
17815          * this Region.</p> <p>Amazon Web Services creates a unique Amazon Web Services
17816          * managed KMS key in each Region for use with encryption by default. If you change
17817          * the default KMS key to a symmetric customer managed KMS key, it is used instead
17818          * of the Amazon Web Services managed KMS key. To reset the default KMS key to the
17819          * Amazon Web Services managed KMS key for EBS, use <a>ResetEbsDefaultKmsKeyId</a>.
17820          * Amazon EBS does not support asymmetric KMS keys.</p> <p>If you delete or disable
17821          * the customer managed KMS key that you specified for use with encryption by
17822          * default, your instances will fail to launch.</p> <p>For more information, see <a
17823          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html">Amazon
17824          * EBS encryption</a> in the <i>Amazon Elastic Compute Cloud User
17825          * Guide</i>.</p><p><h3>See Also:</h3>   <a
17826          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyEbsDefaultKmsKeyId">AWS
17827          * API Reference</a></p>
17828          *
17829          * Queues the request into a thread executor and triggers associated callback when operation has finished.
17830          */
17831         virtual void ModifyEbsDefaultKmsKeyIdAsync(const Model::ModifyEbsDefaultKmsKeyIdRequest& request, const ModifyEbsDefaultKmsKeyIdResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
17832 
17833         /**
17834          * <p>Modifies the specified EC2 Fleet.</p> <p>You can only modify an EC2 Fleet
17835          * request of type <code>maintain</code>.</p> <p>While the EC2 Fleet is being
17836          * modified, it is in the <code>modifying</code> state.</p> <p>To scale up your EC2
17837          * Fleet, increase its target capacity. The EC2 Fleet launches the additional Spot
17838          * Instances according to the allocation strategy for the EC2 Fleet request. If the
17839          * allocation strategy is <code>lowest-price</code>, the EC2 Fleet launches
17840          * instances using the Spot Instance pool with the lowest price. If the allocation
17841          * strategy is <code>diversified</code>, the EC2 Fleet distributes the instances
17842          * across the Spot Instance pools. If the allocation strategy is
17843          * <code>capacity-optimized</code>, EC2 Fleet launches instances from Spot Instance
17844          * pools with optimal capacity for the number of instances that are launching.</p>
17845          * <p>To scale down your EC2 Fleet, decrease its target capacity. First, the EC2
17846          * Fleet cancels any open requests that exceed the new target capacity. You can
17847          * request that the EC2 Fleet terminate Spot Instances until the size of the fleet
17848          * no longer exceeds the new target capacity. If the allocation strategy is
17849          * <code>lowest-price</code>, the EC2 Fleet terminates the instances with the
17850          * highest price per unit. If the allocation strategy is
17851          * <code>capacity-optimized</code>, the EC2 Fleet terminates the instances in the
17852          * Spot Instance pools that have the least available Spot Instance capacity. If the
17853          * allocation strategy is <code>diversified</code>, the EC2 Fleet terminates
17854          * instances across the Spot Instance pools. Alternatively, you can request that
17855          * the EC2 Fleet keep the fleet at its current size, but not replace any Spot
17856          * Instances that are interrupted or that you terminate manually.</p> <p>If you are
17857          * finished with your EC2 Fleet for now, but will use it again later, you can set
17858          * the target capacity to 0.</p><p><h3>See Also:</h3>   <a
17859          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyFleet">AWS API
17860          * Reference</a></p>
17861          */
17862         virtual Model::ModifyFleetOutcome ModifyFleet(const Model::ModifyFleetRequest& request) const;
17863 
17864         /**
17865          * <p>Modifies the specified EC2 Fleet.</p> <p>You can only modify an EC2 Fleet
17866          * request of type <code>maintain</code>.</p> <p>While the EC2 Fleet is being
17867          * modified, it is in the <code>modifying</code> state.</p> <p>To scale up your EC2
17868          * Fleet, increase its target capacity. The EC2 Fleet launches the additional Spot
17869          * Instances according to the allocation strategy for the EC2 Fleet request. If the
17870          * allocation strategy is <code>lowest-price</code>, the EC2 Fleet launches
17871          * instances using the Spot Instance pool with the lowest price. If the allocation
17872          * strategy is <code>diversified</code>, the EC2 Fleet distributes the instances
17873          * across the Spot Instance pools. If the allocation strategy is
17874          * <code>capacity-optimized</code>, EC2 Fleet launches instances from Spot Instance
17875          * pools with optimal capacity for the number of instances that are launching.</p>
17876          * <p>To scale down your EC2 Fleet, decrease its target capacity. First, the EC2
17877          * Fleet cancels any open requests that exceed the new target capacity. You can
17878          * request that the EC2 Fleet terminate Spot Instances until the size of the fleet
17879          * no longer exceeds the new target capacity. If the allocation strategy is
17880          * <code>lowest-price</code>, the EC2 Fleet terminates the instances with the
17881          * highest price per unit. If the allocation strategy is
17882          * <code>capacity-optimized</code>, the EC2 Fleet terminates the instances in the
17883          * Spot Instance pools that have the least available Spot Instance capacity. If the
17884          * allocation strategy is <code>diversified</code>, the EC2 Fleet terminates
17885          * instances across the Spot Instance pools. Alternatively, you can request that
17886          * the EC2 Fleet keep the fleet at its current size, but not replace any Spot
17887          * Instances that are interrupted or that you terminate manually.</p> <p>If you are
17888          * finished with your EC2 Fleet for now, but will use it again later, you can set
17889          * the target capacity to 0.</p><p><h3>See Also:</h3>   <a
17890          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyFleet">AWS API
17891          * Reference</a></p>
17892          *
17893          * returns a future to the operation so that it can be executed in parallel to other requests.
17894          */
17895         virtual Model::ModifyFleetOutcomeCallable ModifyFleetCallable(const Model::ModifyFleetRequest& request) const;
17896 
17897         /**
17898          * <p>Modifies the specified EC2 Fleet.</p> <p>You can only modify an EC2 Fleet
17899          * request of type <code>maintain</code>.</p> <p>While the EC2 Fleet is being
17900          * modified, it is in the <code>modifying</code> state.</p> <p>To scale up your EC2
17901          * Fleet, increase its target capacity. The EC2 Fleet launches the additional Spot
17902          * Instances according to the allocation strategy for the EC2 Fleet request. If the
17903          * allocation strategy is <code>lowest-price</code>, the EC2 Fleet launches
17904          * instances using the Spot Instance pool with the lowest price. If the allocation
17905          * strategy is <code>diversified</code>, the EC2 Fleet distributes the instances
17906          * across the Spot Instance pools. If the allocation strategy is
17907          * <code>capacity-optimized</code>, EC2 Fleet launches instances from Spot Instance
17908          * pools with optimal capacity for the number of instances that are launching.</p>
17909          * <p>To scale down your EC2 Fleet, decrease its target capacity. First, the EC2
17910          * Fleet cancels any open requests that exceed the new target capacity. You can
17911          * request that the EC2 Fleet terminate Spot Instances until the size of the fleet
17912          * no longer exceeds the new target capacity. If the allocation strategy is
17913          * <code>lowest-price</code>, the EC2 Fleet terminates the instances with the
17914          * highest price per unit. If the allocation strategy is
17915          * <code>capacity-optimized</code>, the EC2 Fleet terminates the instances in the
17916          * Spot Instance pools that have the least available Spot Instance capacity. If the
17917          * allocation strategy is <code>diversified</code>, the EC2 Fleet terminates
17918          * instances across the Spot Instance pools. Alternatively, you can request that
17919          * the EC2 Fleet keep the fleet at its current size, but not replace any Spot
17920          * Instances that are interrupted or that you terminate manually.</p> <p>If you are
17921          * finished with your EC2 Fleet for now, but will use it again later, you can set
17922          * the target capacity to 0.</p><p><h3>See Also:</h3>   <a
17923          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyFleet">AWS API
17924          * Reference</a></p>
17925          *
17926          * Queues the request into a thread executor and triggers associated callback when operation has finished.
17927          */
17928         virtual void ModifyFleetAsync(const Model::ModifyFleetRequest& request, const ModifyFleetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
17929 
17930         /**
17931          * <p>Modifies the specified attribute of the specified Amazon FPGA Image
17932          * (AFI).</p><p><h3>See Also:</h3>   <a
17933          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyFpgaImageAttribute">AWS
17934          * API Reference</a></p>
17935          */
17936         virtual Model::ModifyFpgaImageAttributeOutcome ModifyFpgaImageAttribute(const Model::ModifyFpgaImageAttributeRequest& request) const;
17937 
17938         /**
17939          * <p>Modifies the specified attribute of the specified Amazon FPGA Image
17940          * (AFI).</p><p><h3>See Also:</h3>   <a
17941          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyFpgaImageAttribute">AWS
17942          * API Reference</a></p>
17943          *
17944          * returns a future to the operation so that it can be executed in parallel to other requests.
17945          */
17946         virtual Model::ModifyFpgaImageAttributeOutcomeCallable ModifyFpgaImageAttributeCallable(const Model::ModifyFpgaImageAttributeRequest& request) const;
17947 
17948         /**
17949          * <p>Modifies the specified attribute of the specified Amazon FPGA Image
17950          * (AFI).</p><p><h3>See Also:</h3>   <a
17951          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyFpgaImageAttribute">AWS
17952          * API Reference</a></p>
17953          *
17954          * Queues the request into a thread executor and triggers associated callback when operation has finished.
17955          */
17956         virtual void ModifyFpgaImageAttributeAsync(const Model::ModifyFpgaImageAttributeRequest& request, const ModifyFpgaImageAttributeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
17957 
17958         /**
17959          * <p>Modify the auto-placement setting of a Dedicated Host. When auto-placement is
17960          * enabled, any instances that you launch with a tenancy of <code>host</code> but
17961          * without a specific host ID are placed onto any available Dedicated Host in your
17962          * account that has auto-placement enabled. When auto-placement is disabled, you
17963          * need to provide a host ID to have the instance launch onto a specific host. If
17964          * no host ID is provided, the instance is launched onto a suitable host with
17965          * auto-placement enabled.</p> <p>You can also use this API action to modify a
17966          * Dedicated Host to support either multiple instance types in an instance family,
17967          * or to support a specific instance type only.</p><p><h3>See Also:</h3>   <a
17968          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyHosts">AWS API
17969          * Reference</a></p>
17970          */
17971         virtual Model::ModifyHostsOutcome ModifyHosts(const Model::ModifyHostsRequest& request) const;
17972 
17973         /**
17974          * <p>Modify the auto-placement setting of a Dedicated Host. When auto-placement is
17975          * enabled, any instances that you launch with a tenancy of <code>host</code> but
17976          * without a specific host ID are placed onto any available Dedicated Host in your
17977          * account that has auto-placement enabled. When auto-placement is disabled, you
17978          * need to provide a host ID to have the instance launch onto a specific host. If
17979          * no host ID is provided, the instance is launched onto a suitable host with
17980          * auto-placement enabled.</p> <p>You can also use this API action to modify a
17981          * Dedicated Host to support either multiple instance types in an instance family,
17982          * or to support a specific instance type only.</p><p><h3>See Also:</h3>   <a
17983          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyHosts">AWS API
17984          * Reference</a></p>
17985          *
17986          * returns a future to the operation so that it can be executed in parallel to other requests.
17987          */
17988         virtual Model::ModifyHostsOutcomeCallable ModifyHostsCallable(const Model::ModifyHostsRequest& request) const;
17989 
17990         /**
17991          * <p>Modify the auto-placement setting of a Dedicated Host. When auto-placement is
17992          * enabled, any instances that you launch with a tenancy of <code>host</code> but
17993          * without a specific host ID are placed onto any available Dedicated Host in your
17994          * account that has auto-placement enabled. When auto-placement is disabled, you
17995          * need to provide a host ID to have the instance launch onto a specific host. If
17996          * no host ID is provided, the instance is launched onto a suitable host with
17997          * auto-placement enabled.</p> <p>You can also use this API action to modify a
17998          * Dedicated Host to support either multiple instance types in an instance family,
17999          * or to support a specific instance type only.</p><p><h3>See Also:</h3>   <a
18000          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyHosts">AWS API
18001          * Reference</a></p>
18002          *
18003          * Queues the request into a thread executor and triggers associated callback when operation has finished.
18004          */
18005         virtual void ModifyHostsAsync(const Model::ModifyHostsRequest& request, const ModifyHostsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
18006 
18007         /**
18008          * <p>Modifies the ID format for the specified resource on a per-Region basis. You
18009          * can specify that resources should receive longer IDs (17-character IDs) when
18010          * they are created.</p> <p>This request can only be used to modify longer ID
18011          * settings for resource types that are within the opt-in period. Resources
18012          * currently in their opt-in period include: <code>bundle</code> |
18013          * <code>conversion-task</code> | <code>customer-gateway</code> |
18014          * <code>dhcp-options</code> | <code>elastic-ip-allocation</code> |
18015          * <code>elastic-ip-association</code> | <code>export-task</code> |
18016          * <code>flow-log</code> | <code>image</code> | <code>import-task</code> |
18017          * <code>internet-gateway</code> | <code>network-acl</code> |
18018          * <code>network-acl-association</code> | <code>network-interface</code> |
18019          * <code>network-interface-attachment</code> | <code>prefix-list</code> |
18020          * <code>route-table</code> | <code>route-table-association</code> |
18021          * <code>security-group</code> | <code>subnet</code> |
18022          * <code>subnet-cidr-block-association</code> | <code>vpc</code> |
18023          * <code>vpc-cidr-block-association</code> | <code>vpc-endpoint</code> |
18024          * <code>vpc-peering-connection</code> | <code>vpn-connection</code> |
18025          * <code>vpn-gateway</code>.</p> <p>This setting applies to the IAM user who makes
18026          * the request; it does not apply to the entire Amazon Web Services account. By
18027          * default, an IAM user defaults to the same settings as the root user. If you're
18028          * using this action as the root user, then these settings apply to the entire
18029          * account, unless an IAM user explicitly overrides these settings for themselves.
18030          * For more information, see <a
18031          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/resource-ids.html">Resource
18032          * IDs</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p> <p>Resources
18033          * created with longer IDs are visible to all IAM roles and users, regardless of
18034          * these settings and provided that they have permission to use the relevant
18035          * <code>Describe</code> command for the resource type.</p><p><h3>See Also:</h3>
18036          * <a
18037          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyIdFormat">AWS
18038          * API Reference</a></p>
18039          */
18040         virtual Model::ModifyIdFormatOutcome ModifyIdFormat(const Model::ModifyIdFormatRequest& request) const;
18041 
18042         /**
18043          * <p>Modifies the ID format for the specified resource on a per-Region basis. You
18044          * can specify that resources should receive longer IDs (17-character IDs) when
18045          * they are created.</p> <p>This request can only be used to modify longer ID
18046          * settings for resource types that are within the opt-in period. Resources
18047          * currently in their opt-in period include: <code>bundle</code> |
18048          * <code>conversion-task</code> | <code>customer-gateway</code> |
18049          * <code>dhcp-options</code> | <code>elastic-ip-allocation</code> |
18050          * <code>elastic-ip-association</code> | <code>export-task</code> |
18051          * <code>flow-log</code> | <code>image</code> | <code>import-task</code> |
18052          * <code>internet-gateway</code> | <code>network-acl</code> |
18053          * <code>network-acl-association</code> | <code>network-interface</code> |
18054          * <code>network-interface-attachment</code> | <code>prefix-list</code> |
18055          * <code>route-table</code> | <code>route-table-association</code> |
18056          * <code>security-group</code> | <code>subnet</code> |
18057          * <code>subnet-cidr-block-association</code> | <code>vpc</code> |
18058          * <code>vpc-cidr-block-association</code> | <code>vpc-endpoint</code> |
18059          * <code>vpc-peering-connection</code> | <code>vpn-connection</code> |
18060          * <code>vpn-gateway</code>.</p> <p>This setting applies to the IAM user who makes
18061          * the request; it does not apply to the entire Amazon Web Services account. By
18062          * default, an IAM user defaults to the same settings as the root user. If you're
18063          * using this action as the root user, then these settings apply to the entire
18064          * account, unless an IAM user explicitly overrides these settings for themselves.
18065          * For more information, see <a
18066          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/resource-ids.html">Resource
18067          * IDs</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p> <p>Resources
18068          * created with longer IDs are visible to all IAM roles and users, regardless of
18069          * these settings and provided that they have permission to use the relevant
18070          * <code>Describe</code> command for the resource type.</p><p><h3>See Also:</h3>
18071          * <a
18072          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyIdFormat">AWS
18073          * API Reference</a></p>
18074          *
18075          * returns a future to the operation so that it can be executed in parallel to other requests.
18076          */
18077         virtual Model::ModifyIdFormatOutcomeCallable ModifyIdFormatCallable(const Model::ModifyIdFormatRequest& request) const;
18078 
18079         /**
18080          * <p>Modifies the ID format for the specified resource on a per-Region basis. You
18081          * can specify that resources should receive longer IDs (17-character IDs) when
18082          * they are created.</p> <p>This request can only be used to modify longer ID
18083          * settings for resource types that are within the opt-in period. Resources
18084          * currently in their opt-in period include: <code>bundle</code> |
18085          * <code>conversion-task</code> | <code>customer-gateway</code> |
18086          * <code>dhcp-options</code> | <code>elastic-ip-allocation</code> |
18087          * <code>elastic-ip-association</code> | <code>export-task</code> |
18088          * <code>flow-log</code> | <code>image</code> | <code>import-task</code> |
18089          * <code>internet-gateway</code> | <code>network-acl</code> |
18090          * <code>network-acl-association</code> | <code>network-interface</code> |
18091          * <code>network-interface-attachment</code> | <code>prefix-list</code> |
18092          * <code>route-table</code> | <code>route-table-association</code> |
18093          * <code>security-group</code> | <code>subnet</code> |
18094          * <code>subnet-cidr-block-association</code> | <code>vpc</code> |
18095          * <code>vpc-cidr-block-association</code> | <code>vpc-endpoint</code> |
18096          * <code>vpc-peering-connection</code> | <code>vpn-connection</code> |
18097          * <code>vpn-gateway</code>.</p> <p>This setting applies to the IAM user who makes
18098          * the request; it does not apply to the entire Amazon Web Services account. By
18099          * default, an IAM user defaults to the same settings as the root user. If you're
18100          * using this action as the root user, then these settings apply to the entire
18101          * account, unless an IAM user explicitly overrides these settings for themselves.
18102          * For more information, see <a
18103          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/resource-ids.html">Resource
18104          * IDs</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p> <p>Resources
18105          * created with longer IDs are visible to all IAM roles and users, regardless of
18106          * these settings and provided that they have permission to use the relevant
18107          * <code>Describe</code> command for the resource type.</p><p><h3>See Also:</h3>
18108          * <a
18109          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyIdFormat">AWS
18110          * API Reference</a></p>
18111          *
18112          * Queues the request into a thread executor and triggers associated callback when operation has finished.
18113          */
18114         virtual void ModifyIdFormatAsync(const Model::ModifyIdFormatRequest& request, const ModifyIdFormatResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
18115 
18116         /**
18117          * <p>Modifies the ID format of a resource for a specified IAM user, IAM role, or
18118          * the root user for an account; or all IAM users, IAM roles, and the root user for
18119          * an account. You can specify that resources should receive longer IDs
18120          * (17-character IDs) when they are created. </p> <p>This request can only be used
18121          * to modify longer ID settings for resource types that are within the opt-in
18122          * period. Resources currently in their opt-in period include: <code>bundle</code>
18123          * | <code>conversion-task</code> | <code>customer-gateway</code> |
18124          * <code>dhcp-options</code> | <code>elastic-ip-allocation</code> |
18125          * <code>elastic-ip-association</code> | <code>export-task</code> |
18126          * <code>flow-log</code> | <code>image</code> | <code>import-task</code> |
18127          * <code>internet-gateway</code> | <code>network-acl</code> |
18128          * <code>network-acl-association</code> | <code>network-interface</code> |
18129          * <code>network-interface-attachment</code> | <code>prefix-list</code> |
18130          * <code>route-table</code> | <code>route-table-association</code> |
18131          * <code>security-group</code> | <code>subnet</code> |
18132          * <code>subnet-cidr-block-association</code> | <code>vpc</code> |
18133          * <code>vpc-cidr-block-association</code> | <code>vpc-endpoint</code> |
18134          * <code>vpc-peering-connection</code> | <code>vpn-connection</code> |
18135          * <code>vpn-gateway</code>. </p> <p>For more information, see <a
18136          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/resource-ids.html">Resource
18137          * IDs</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>. </p> <p>This
18138          * setting applies to the principal specified in the request; it does not apply to
18139          * the principal that makes the request. </p> <p>Resources created with longer IDs
18140          * are visible to all IAM roles and users, regardless of these settings and
18141          * provided that they have permission to use the relevant <code>Describe</code>
18142          * command for the resource type.</p><p><h3>See Also:</h3>   <a
18143          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyIdentityIdFormat">AWS
18144          * API Reference</a></p>
18145          */
18146         virtual Model::ModifyIdentityIdFormatOutcome ModifyIdentityIdFormat(const Model::ModifyIdentityIdFormatRequest& request) const;
18147 
18148         /**
18149          * <p>Modifies the ID format of a resource for a specified IAM user, IAM role, or
18150          * the root user for an account; or all IAM users, IAM roles, and the root user for
18151          * an account. You can specify that resources should receive longer IDs
18152          * (17-character IDs) when they are created. </p> <p>This request can only be used
18153          * to modify longer ID settings for resource types that are within the opt-in
18154          * period. Resources currently in their opt-in period include: <code>bundle</code>
18155          * | <code>conversion-task</code> | <code>customer-gateway</code> |
18156          * <code>dhcp-options</code> | <code>elastic-ip-allocation</code> |
18157          * <code>elastic-ip-association</code> | <code>export-task</code> |
18158          * <code>flow-log</code> | <code>image</code> | <code>import-task</code> |
18159          * <code>internet-gateway</code> | <code>network-acl</code> |
18160          * <code>network-acl-association</code> | <code>network-interface</code> |
18161          * <code>network-interface-attachment</code> | <code>prefix-list</code> |
18162          * <code>route-table</code> | <code>route-table-association</code> |
18163          * <code>security-group</code> | <code>subnet</code> |
18164          * <code>subnet-cidr-block-association</code> | <code>vpc</code> |
18165          * <code>vpc-cidr-block-association</code> | <code>vpc-endpoint</code> |
18166          * <code>vpc-peering-connection</code> | <code>vpn-connection</code> |
18167          * <code>vpn-gateway</code>. </p> <p>For more information, see <a
18168          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/resource-ids.html">Resource
18169          * IDs</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>. </p> <p>This
18170          * setting applies to the principal specified in the request; it does not apply to
18171          * the principal that makes the request. </p> <p>Resources created with longer IDs
18172          * are visible to all IAM roles and users, regardless of these settings and
18173          * provided that they have permission to use the relevant <code>Describe</code>
18174          * command for the resource type.</p><p><h3>See Also:</h3>   <a
18175          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyIdentityIdFormat">AWS
18176          * API Reference</a></p>
18177          *
18178          * returns a future to the operation so that it can be executed in parallel to other requests.
18179          */
18180         virtual Model::ModifyIdentityIdFormatOutcomeCallable ModifyIdentityIdFormatCallable(const Model::ModifyIdentityIdFormatRequest& request) const;
18181 
18182         /**
18183          * <p>Modifies the ID format of a resource for a specified IAM user, IAM role, or
18184          * the root user for an account; or all IAM users, IAM roles, and the root user for
18185          * an account. You can specify that resources should receive longer IDs
18186          * (17-character IDs) when they are created. </p> <p>This request can only be used
18187          * to modify longer ID settings for resource types that are within the opt-in
18188          * period. Resources currently in their opt-in period include: <code>bundle</code>
18189          * | <code>conversion-task</code> | <code>customer-gateway</code> |
18190          * <code>dhcp-options</code> | <code>elastic-ip-allocation</code> |
18191          * <code>elastic-ip-association</code> | <code>export-task</code> |
18192          * <code>flow-log</code> | <code>image</code> | <code>import-task</code> |
18193          * <code>internet-gateway</code> | <code>network-acl</code> |
18194          * <code>network-acl-association</code> | <code>network-interface</code> |
18195          * <code>network-interface-attachment</code> | <code>prefix-list</code> |
18196          * <code>route-table</code> | <code>route-table-association</code> |
18197          * <code>security-group</code> | <code>subnet</code> |
18198          * <code>subnet-cidr-block-association</code> | <code>vpc</code> |
18199          * <code>vpc-cidr-block-association</code> | <code>vpc-endpoint</code> |
18200          * <code>vpc-peering-connection</code> | <code>vpn-connection</code> |
18201          * <code>vpn-gateway</code>. </p> <p>For more information, see <a
18202          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/resource-ids.html">Resource
18203          * IDs</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>. </p> <p>This
18204          * setting applies to the principal specified in the request; it does not apply to
18205          * the principal that makes the request. </p> <p>Resources created with longer IDs
18206          * are visible to all IAM roles and users, regardless of these settings and
18207          * provided that they have permission to use the relevant <code>Describe</code>
18208          * command for the resource type.</p><p><h3>See Also:</h3>   <a
18209          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyIdentityIdFormat">AWS
18210          * API Reference</a></p>
18211          *
18212          * Queues the request into a thread executor and triggers associated callback when operation has finished.
18213          */
18214         virtual void ModifyIdentityIdFormatAsync(const Model::ModifyIdentityIdFormatRequest& request, const ModifyIdentityIdFormatResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
18215 
18216         /**
18217          * <p>Modifies the specified attribute of the specified AMI. You can specify only
18218          * one attribute at a time. You can use the <code>Attribute</code> parameter to
18219          * specify the attribute or one of the following parameters:
18220          * <code>Description</code> or <code>LaunchPermission</code>.</p> <p>Images with an
18221          * Amazon Web Services Marketplace product code cannot be made public.</p> <p>To
18222          * enable the SriovNetSupport enhanced networking attribute of an image, enable
18223          * SriovNetSupport on an instance and create an AMI from the
18224          * instance.</p><p><h3>See Also:</h3>   <a
18225          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyImageAttribute">AWS
18226          * API Reference</a></p>
18227          */
18228         virtual Model::ModifyImageAttributeOutcome ModifyImageAttribute(const Model::ModifyImageAttributeRequest& request) const;
18229 
18230         /**
18231          * <p>Modifies the specified attribute of the specified AMI. You can specify only
18232          * one attribute at a time. You can use the <code>Attribute</code> parameter to
18233          * specify the attribute or one of the following parameters:
18234          * <code>Description</code> or <code>LaunchPermission</code>.</p> <p>Images with an
18235          * Amazon Web Services Marketplace product code cannot be made public.</p> <p>To
18236          * enable the SriovNetSupport enhanced networking attribute of an image, enable
18237          * SriovNetSupport on an instance and create an AMI from the
18238          * instance.</p><p><h3>See Also:</h3>   <a
18239          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyImageAttribute">AWS
18240          * API Reference</a></p>
18241          *
18242          * returns a future to the operation so that it can be executed in parallel to other requests.
18243          */
18244         virtual Model::ModifyImageAttributeOutcomeCallable ModifyImageAttributeCallable(const Model::ModifyImageAttributeRequest& request) const;
18245 
18246         /**
18247          * <p>Modifies the specified attribute of the specified AMI. You can specify only
18248          * one attribute at a time. You can use the <code>Attribute</code> parameter to
18249          * specify the attribute or one of the following parameters:
18250          * <code>Description</code> or <code>LaunchPermission</code>.</p> <p>Images with an
18251          * Amazon Web Services Marketplace product code cannot be made public.</p> <p>To
18252          * enable the SriovNetSupport enhanced networking attribute of an image, enable
18253          * SriovNetSupport on an instance and create an AMI from the
18254          * instance.</p><p><h3>See Also:</h3>   <a
18255          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyImageAttribute">AWS
18256          * API Reference</a></p>
18257          *
18258          * Queues the request into a thread executor and triggers associated callback when operation has finished.
18259          */
18260         virtual void ModifyImageAttributeAsync(const Model::ModifyImageAttributeRequest& request, const ModifyImageAttributeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
18261 
18262         /**
18263          * <p>Modifies the specified attribute of the specified instance. You can specify
18264          * only one attribute at a time.</p> <p> <b>Note: </b>Using this action to change
18265          * the security groups associated with an elastic network interface (ENI) attached
18266          * to an instance in a VPC can result in an error if the instance has more than one
18267          * ENI. To change the security groups associated with an ENI attached to an
18268          * instance that has multiple ENIs, we recommend that you use the
18269          * <a>ModifyNetworkInterfaceAttribute</a> action.</p> <p>To modify some attributes,
18270          * the instance must be stopped. For more information, see <a
18271          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_ChangingAttributesWhileInstanceStopped.html">Modifying
18272          * attributes of a stopped instance</a> in the <i>Amazon EC2 User
18273          * Guide</i>.</p><p><h3>See Also:</h3>   <a
18274          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyInstanceAttribute">AWS
18275          * API Reference</a></p>
18276          */
18277         virtual Model::ModifyInstanceAttributeOutcome ModifyInstanceAttribute(const Model::ModifyInstanceAttributeRequest& request) const;
18278 
18279         /**
18280          * <p>Modifies the specified attribute of the specified instance. You can specify
18281          * only one attribute at a time.</p> <p> <b>Note: </b>Using this action to change
18282          * the security groups associated with an elastic network interface (ENI) attached
18283          * to an instance in a VPC can result in an error if the instance has more than one
18284          * ENI. To change the security groups associated with an ENI attached to an
18285          * instance that has multiple ENIs, we recommend that you use the
18286          * <a>ModifyNetworkInterfaceAttribute</a> action.</p> <p>To modify some attributes,
18287          * the instance must be stopped. For more information, see <a
18288          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_ChangingAttributesWhileInstanceStopped.html">Modifying
18289          * attributes of a stopped instance</a> in the <i>Amazon EC2 User
18290          * Guide</i>.</p><p><h3>See Also:</h3>   <a
18291          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyInstanceAttribute">AWS
18292          * API Reference</a></p>
18293          *
18294          * returns a future to the operation so that it can be executed in parallel to other requests.
18295          */
18296         virtual Model::ModifyInstanceAttributeOutcomeCallable ModifyInstanceAttributeCallable(const Model::ModifyInstanceAttributeRequest& request) const;
18297 
18298         /**
18299          * <p>Modifies the specified attribute of the specified instance. You can specify
18300          * only one attribute at a time.</p> <p> <b>Note: </b>Using this action to change
18301          * the security groups associated with an elastic network interface (ENI) attached
18302          * to an instance in a VPC can result in an error if the instance has more than one
18303          * ENI. To change the security groups associated with an ENI attached to an
18304          * instance that has multiple ENIs, we recommend that you use the
18305          * <a>ModifyNetworkInterfaceAttribute</a> action.</p> <p>To modify some attributes,
18306          * the instance must be stopped. For more information, see <a
18307          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_ChangingAttributesWhileInstanceStopped.html">Modifying
18308          * attributes of a stopped instance</a> in the <i>Amazon EC2 User
18309          * Guide</i>.</p><p><h3>See Also:</h3>   <a
18310          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyInstanceAttribute">AWS
18311          * API Reference</a></p>
18312          *
18313          * Queues the request into a thread executor and triggers associated callback when operation has finished.
18314          */
18315         virtual void ModifyInstanceAttributeAsync(const Model::ModifyInstanceAttributeRequest& request, const ModifyInstanceAttributeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
18316 
18317         /**
18318          * <p>Modifies the Capacity Reservation settings for a stopped instance. Use this
18319          * action to configure an instance to target a specific Capacity Reservation, run
18320          * in any <code>open</code> Capacity Reservation with matching attributes, or run
18321          * On-Demand Instance capacity.</p><p><h3>See Also:</h3>   <a
18322          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyInstanceCapacityReservationAttributes">AWS
18323          * API Reference</a></p>
18324          */
18325         virtual Model::ModifyInstanceCapacityReservationAttributesOutcome ModifyInstanceCapacityReservationAttributes(const Model::ModifyInstanceCapacityReservationAttributesRequest& request) const;
18326 
18327         /**
18328          * <p>Modifies the Capacity Reservation settings for a stopped instance. Use this
18329          * action to configure an instance to target a specific Capacity Reservation, run
18330          * in any <code>open</code> Capacity Reservation with matching attributes, or run
18331          * On-Demand Instance capacity.</p><p><h3>See Also:</h3>   <a
18332          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyInstanceCapacityReservationAttributes">AWS
18333          * API Reference</a></p>
18334          *
18335          * returns a future to the operation so that it can be executed in parallel to other requests.
18336          */
18337         virtual Model::ModifyInstanceCapacityReservationAttributesOutcomeCallable ModifyInstanceCapacityReservationAttributesCallable(const Model::ModifyInstanceCapacityReservationAttributesRequest& request) const;
18338 
18339         /**
18340          * <p>Modifies the Capacity Reservation settings for a stopped instance. Use this
18341          * action to configure an instance to target a specific Capacity Reservation, run
18342          * in any <code>open</code> Capacity Reservation with matching attributes, or run
18343          * On-Demand Instance capacity.</p><p><h3>See Also:</h3>   <a
18344          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyInstanceCapacityReservationAttributes">AWS
18345          * API Reference</a></p>
18346          *
18347          * Queues the request into a thread executor and triggers associated callback when operation has finished.
18348          */
18349         virtual void ModifyInstanceCapacityReservationAttributesAsync(const Model::ModifyInstanceCapacityReservationAttributesRequest& request, const ModifyInstanceCapacityReservationAttributesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
18350 
18351         /**
18352          * <p>Modifies the credit option for CPU usage on a running or stopped burstable
18353          * performance instance. The credit options are <code>standard</code> and
18354          * <code>unlimited</code>.</p> <p>For more information, see <a
18355          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html">Burstable
18356          * performance instances</a> in the <i>Amazon EC2 User Guide</i>.</p><p><h3>See
18357          * Also:</h3>   <a
18358          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyInstanceCreditSpecification">AWS
18359          * API Reference</a></p>
18360          */
18361         virtual Model::ModifyInstanceCreditSpecificationOutcome ModifyInstanceCreditSpecification(const Model::ModifyInstanceCreditSpecificationRequest& request) const;
18362 
18363         /**
18364          * <p>Modifies the credit option for CPU usage on a running or stopped burstable
18365          * performance instance. The credit options are <code>standard</code> and
18366          * <code>unlimited</code>.</p> <p>For more information, see <a
18367          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html">Burstable
18368          * performance instances</a> in the <i>Amazon EC2 User Guide</i>.</p><p><h3>See
18369          * Also:</h3>   <a
18370          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyInstanceCreditSpecification">AWS
18371          * API Reference</a></p>
18372          *
18373          * returns a future to the operation so that it can be executed in parallel to other requests.
18374          */
18375         virtual Model::ModifyInstanceCreditSpecificationOutcomeCallable ModifyInstanceCreditSpecificationCallable(const Model::ModifyInstanceCreditSpecificationRequest& request) const;
18376 
18377         /**
18378          * <p>Modifies the credit option for CPU usage on a running or stopped burstable
18379          * performance instance. The credit options are <code>standard</code> and
18380          * <code>unlimited</code>.</p> <p>For more information, see <a
18381          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html">Burstable
18382          * performance instances</a> in the <i>Amazon EC2 User Guide</i>.</p><p><h3>See
18383          * Also:</h3>   <a
18384          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyInstanceCreditSpecification">AWS
18385          * API Reference</a></p>
18386          *
18387          * Queues the request into a thread executor and triggers associated callback when operation has finished.
18388          */
18389         virtual void ModifyInstanceCreditSpecificationAsync(const Model::ModifyInstanceCreditSpecificationRequest& request, const ModifyInstanceCreditSpecificationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
18390 
18391         /**
18392          * <p>Modifies the start time for a scheduled Amazon EC2 instance
18393          * event.</p><p><h3>See Also:</h3>   <a
18394          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyInstanceEventStartTime">AWS
18395          * API Reference</a></p>
18396          */
18397         virtual Model::ModifyInstanceEventStartTimeOutcome ModifyInstanceEventStartTime(const Model::ModifyInstanceEventStartTimeRequest& request) const;
18398 
18399         /**
18400          * <p>Modifies the start time for a scheduled Amazon EC2 instance
18401          * event.</p><p><h3>See Also:</h3>   <a
18402          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyInstanceEventStartTime">AWS
18403          * API Reference</a></p>
18404          *
18405          * returns a future to the operation so that it can be executed in parallel to other requests.
18406          */
18407         virtual Model::ModifyInstanceEventStartTimeOutcomeCallable ModifyInstanceEventStartTimeCallable(const Model::ModifyInstanceEventStartTimeRequest& request) const;
18408 
18409         /**
18410          * <p>Modifies the start time for a scheduled Amazon EC2 instance
18411          * event.</p><p><h3>See Also:</h3>   <a
18412          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyInstanceEventStartTime">AWS
18413          * API Reference</a></p>
18414          *
18415          * Queues the request into a thread executor and triggers associated callback when operation has finished.
18416          */
18417         virtual void ModifyInstanceEventStartTimeAsync(const Model::ModifyInstanceEventStartTimeRequest& request, const ModifyInstanceEventStartTimeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
18418 
18419         /**
18420          * <p>Modifies the specified event window.</p> <p>You can define either a set of
18421          * time ranges or a cron expression when modifying the event window, but not
18422          * both.</p> <p>To modify the targets associated with the event window, use the
18423          * <a>AssociateInstanceEventWindow</a> and <a>DisassociateInstanceEventWindow</a>
18424          * API.</p> <p>If Amazon Web Services has already scheduled an event, modifying an
18425          * event window won't change the time of the scheduled event.</p> <p>For more
18426          * information, see <a
18427          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/event-windows.html">Define
18428          * event windows for scheduled events</a> in the <i>Amazon EC2 User
18429          * Guide</i>.</p><p><h3>See Also:</h3>   <a
18430          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyInstanceEventWindow">AWS
18431          * API Reference</a></p>
18432          */
18433         virtual Model::ModifyInstanceEventWindowOutcome ModifyInstanceEventWindow(const Model::ModifyInstanceEventWindowRequest& request) const;
18434 
18435         /**
18436          * <p>Modifies the specified event window.</p> <p>You can define either a set of
18437          * time ranges or a cron expression when modifying the event window, but not
18438          * both.</p> <p>To modify the targets associated with the event window, use the
18439          * <a>AssociateInstanceEventWindow</a> and <a>DisassociateInstanceEventWindow</a>
18440          * API.</p> <p>If Amazon Web Services has already scheduled an event, modifying an
18441          * event window won't change the time of the scheduled event.</p> <p>For more
18442          * information, see <a
18443          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/event-windows.html">Define
18444          * event windows for scheduled events</a> in the <i>Amazon EC2 User
18445          * Guide</i>.</p><p><h3>See Also:</h3>   <a
18446          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyInstanceEventWindow">AWS
18447          * API Reference</a></p>
18448          *
18449          * returns a future to the operation so that it can be executed in parallel to other requests.
18450          */
18451         virtual Model::ModifyInstanceEventWindowOutcomeCallable ModifyInstanceEventWindowCallable(const Model::ModifyInstanceEventWindowRequest& request) const;
18452 
18453         /**
18454          * <p>Modifies the specified event window.</p> <p>You can define either a set of
18455          * time ranges or a cron expression when modifying the event window, but not
18456          * both.</p> <p>To modify the targets associated with the event window, use the
18457          * <a>AssociateInstanceEventWindow</a> and <a>DisassociateInstanceEventWindow</a>
18458          * API.</p> <p>If Amazon Web Services has already scheduled an event, modifying an
18459          * event window won't change the time of the scheduled event.</p> <p>For more
18460          * information, see <a
18461          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/event-windows.html">Define
18462          * event windows for scheduled events</a> in the <i>Amazon EC2 User
18463          * Guide</i>.</p><p><h3>See Also:</h3>   <a
18464          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyInstanceEventWindow">AWS
18465          * API Reference</a></p>
18466          *
18467          * Queues the request into a thread executor and triggers associated callback when operation has finished.
18468          */
18469         virtual void ModifyInstanceEventWindowAsync(const Model::ModifyInstanceEventWindowRequest& request, const ModifyInstanceEventWindowResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
18470 
18471         /**
18472          * <p>Modify the instance metadata parameters on a running or stopped instance.
18473          * When you modify the parameters on a stopped instance, they are applied when the
18474          * instance is started. When you modify the parameters on a running instance, the
18475          * API responds with a state of “pending”. After the parameter modifications are
18476          * successfully applied to the instance, the state of the modifications changes
18477          * from “pending” to “applied” in subsequent describe-instances API calls. For more
18478          * information, see <a
18479          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html">Instance
18480          * metadata and user data</a> in the <i>Amazon EC2 User Guide</i>.</p><p><h3>See
18481          * Also:</h3>   <a
18482          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyInstanceMetadataOptions">AWS
18483          * API Reference</a></p>
18484          */
18485         virtual Model::ModifyInstanceMetadataOptionsOutcome ModifyInstanceMetadataOptions(const Model::ModifyInstanceMetadataOptionsRequest& request) const;
18486 
18487         /**
18488          * <p>Modify the instance metadata parameters on a running or stopped instance.
18489          * When you modify the parameters on a stopped instance, they are applied when the
18490          * instance is started. When you modify the parameters on a running instance, the
18491          * API responds with a state of “pending”. After the parameter modifications are
18492          * successfully applied to the instance, the state of the modifications changes
18493          * from “pending” to “applied” in subsequent describe-instances API calls. For more
18494          * information, see <a
18495          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html">Instance
18496          * metadata and user data</a> in the <i>Amazon EC2 User Guide</i>.</p><p><h3>See
18497          * Also:</h3>   <a
18498          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyInstanceMetadataOptions">AWS
18499          * API Reference</a></p>
18500          *
18501          * returns a future to the operation so that it can be executed in parallel to other requests.
18502          */
18503         virtual Model::ModifyInstanceMetadataOptionsOutcomeCallable ModifyInstanceMetadataOptionsCallable(const Model::ModifyInstanceMetadataOptionsRequest& request) const;
18504 
18505         /**
18506          * <p>Modify the instance metadata parameters on a running or stopped instance.
18507          * When you modify the parameters on a stopped instance, they are applied when the
18508          * instance is started. When you modify the parameters on a running instance, the
18509          * API responds with a state of “pending”. After the parameter modifications are
18510          * successfully applied to the instance, the state of the modifications changes
18511          * from “pending” to “applied” in subsequent describe-instances API calls. For more
18512          * information, see <a
18513          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html">Instance
18514          * metadata and user data</a> in the <i>Amazon EC2 User Guide</i>.</p><p><h3>See
18515          * Also:</h3>   <a
18516          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyInstanceMetadataOptions">AWS
18517          * API Reference</a></p>
18518          *
18519          * Queues the request into a thread executor and triggers associated callback when operation has finished.
18520          */
18521         virtual void ModifyInstanceMetadataOptionsAsync(const Model::ModifyInstanceMetadataOptionsRequest& request, const ModifyInstanceMetadataOptionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
18522 
18523         /**
18524          * <p>Modifies the placement attributes for a specified instance. You can do the
18525          * following:</p> <ul> <li> <p>Modify the affinity between an instance and a <a
18526          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-hosts-overview.html">Dedicated
18527          * Host</a>. When affinity is set to <code>host</code> and the instance is not
18528          * associated with a specific Dedicated Host, the next time the instance is
18529          * launched, it is automatically associated with the host on which it lands. If the
18530          * instance is restarted or rebooted, this relationship persists.</p> </li> <li>
18531          * <p>Change the Dedicated Host with which an instance is associated.</p> </li>
18532          * <li> <p>Change the instance tenancy of an instance.</p> </li> <li> <p>Move an
18533          * instance to or from a <a
18534          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html">placement
18535          * group</a>.</p> </li> </ul> <p>At least one attribute for affinity, host ID,
18536          * tenancy, or placement group name must be specified in the request. Affinity and
18537          * tenancy can be modified in the same request.</p> <p>To modify the host ID,
18538          * tenancy, placement group, or partition for an instance, the instance must be in
18539          * the <code>stopped</code> state.</p><p><h3>See Also:</h3>   <a
18540          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyInstancePlacement">AWS
18541          * API Reference</a></p>
18542          */
18543         virtual Model::ModifyInstancePlacementOutcome ModifyInstancePlacement(const Model::ModifyInstancePlacementRequest& request) const;
18544 
18545         /**
18546          * <p>Modifies the placement attributes for a specified instance. You can do the
18547          * following:</p> <ul> <li> <p>Modify the affinity between an instance and a <a
18548          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-hosts-overview.html">Dedicated
18549          * Host</a>. When affinity is set to <code>host</code> and the instance is not
18550          * associated with a specific Dedicated Host, the next time the instance is
18551          * launched, it is automatically associated with the host on which it lands. If the
18552          * instance is restarted or rebooted, this relationship persists.</p> </li> <li>
18553          * <p>Change the Dedicated Host with which an instance is associated.</p> </li>
18554          * <li> <p>Change the instance tenancy of an instance.</p> </li> <li> <p>Move an
18555          * instance to or from a <a
18556          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html">placement
18557          * group</a>.</p> </li> </ul> <p>At least one attribute for affinity, host ID,
18558          * tenancy, or placement group name must be specified in the request. Affinity and
18559          * tenancy can be modified in the same request.</p> <p>To modify the host ID,
18560          * tenancy, placement group, or partition for an instance, the instance must be in
18561          * the <code>stopped</code> state.</p><p><h3>See Also:</h3>   <a
18562          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyInstancePlacement">AWS
18563          * API Reference</a></p>
18564          *
18565          * returns a future to the operation so that it can be executed in parallel to other requests.
18566          */
18567         virtual Model::ModifyInstancePlacementOutcomeCallable ModifyInstancePlacementCallable(const Model::ModifyInstancePlacementRequest& request) const;
18568 
18569         /**
18570          * <p>Modifies the placement attributes for a specified instance. You can do the
18571          * following:</p> <ul> <li> <p>Modify the affinity between an instance and a <a
18572          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-hosts-overview.html">Dedicated
18573          * Host</a>. When affinity is set to <code>host</code> and the instance is not
18574          * associated with a specific Dedicated Host, the next time the instance is
18575          * launched, it is automatically associated with the host on which it lands. If the
18576          * instance is restarted or rebooted, this relationship persists.</p> </li> <li>
18577          * <p>Change the Dedicated Host with which an instance is associated.</p> </li>
18578          * <li> <p>Change the instance tenancy of an instance.</p> </li> <li> <p>Move an
18579          * instance to or from a <a
18580          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html">placement
18581          * group</a>.</p> </li> </ul> <p>At least one attribute for affinity, host ID,
18582          * tenancy, or placement group name must be specified in the request. Affinity and
18583          * tenancy can be modified in the same request.</p> <p>To modify the host ID,
18584          * tenancy, placement group, or partition for an instance, the instance must be in
18585          * the <code>stopped</code> state.</p><p><h3>See Also:</h3>   <a
18586          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyInstancePlacement">AWS
18587          * API Reference</a></p>
18588          *
18589          * Queues the request into a thread executor and triggers associated callback when operation has finished.
18590          */
18591         virtual void ModifyInstancePlacementAsync(const Model::ModifyInstancePlacementRequest& request, const ModifyInstancePlacementResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
18592 
18593         /**
18594          * <p>Modifies a launch template. You can specify which version of the launch
18595          * template to set as the default version. When launching an instance, the default
18596          * version applies when a launch template version is not specified.</p><p><h3>See
18597          * Also:</h3>   <a
18598          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyLaunchTemplate">AWS
18599          * API Reference</a></p>
18600          */
18601         virtual Model::ModifyLaunchTemplateOutcome ModifyLaunchTemplate(const Model::ModifyLaunchTemplateRequest& request) const;
18602 
18603         /**
18604          * <p>Modifies a launch template. You can specify which version of the launch
18605          * template to set as the default version. When launching an instance, the default
18606          * version applies when a launch template version is not specified.</p><p><h3>See
18607          * Also:</h3>   <a
18608          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyLaunchTemplate">AWS
18609          * API Reference</a></p>
18610          *
18611          * returns a future to the operation so that it can be executed in parallel to other requests.
18612          */
18613         virtual Model::ModifyLaunchTemplateOutcomeCallable ModifyLaunchTemplateCallable(const Model::ModifyLaunchTemplateRequest& request) const;
18614 
18615         /**
18616          * <p>Modifies a launch template. You can specify which version of the launch
18617          * template to set as the default version. When launching an instance, the default
18618          * version applies when a launch template version is not specified.</p><p><h3>See
18619          * Also:</h3>   <a
18620          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyLaunchTemplate">AWS
18621          * API Reference</a></p>
18622          *
18623          * Queues the request into a thread executor and triggers associated callback when operation has finished.
18624          */
18625         virtual void ModifyLaunchTemplateAsync(const Model::ModifyLaunchTemplateRequest& request, const ModifyLaunchTemplateResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
18626 
18627         /**
18628          * <p>Modifies the specified managed prefix list.</p> <p>Adding or removing entries
18629          * in a prefix list creates a new version of the prefix list. Changing the name of
18630          * the prefix list does not affect the version.</p> <p>If you specify a current
18631          * version number that does not match the true current version number, the request
18632          * fails.</p><p><h3>See Also:</h3>   <a
18633          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyManagedPrefixList">AWS
18634          * API Reference</a></p>
18635          */
18636         virtual Model::ModifyManagedPrefixListOutcome ModifyManagedPrefixList(const Model::ModifyManagedPrefixListRequest& request) const;
18637 
18638         /**
18639          * <p>Modifies the specified managed prefix list.</p> <p>Adding or removing entries
18640          * in a prefix list creates a new version of the prefix list. Changing the name of
18641          * the prefix list does not affect the version.</p> <p>If you specify a current
18642          * version number that does not match the true current version number, the request
18643          * fails.</p><p><h3>See Also:</h3>   <a
18644          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyManagedPrefixList">AWS
18645          * API Reference</a></p>
18646          *
18647          * returns a future to the operation so that it can be executed in parallel to other requests.
18648          */
18649         virtual Model::ModifyManagedPrefixListOutcomeCallable ModifyManagedPrefixListCallable(const Model::ModifyManagedPrefixListRequest& request) const;
18650 
18651         /**
18652          * <p>Modifies the specified managed prefix list.</p> <p>Adding or removing entries
18653          * in a prefix list creates a new version of the prefix list. Changing the name of
18654          * the prefix list does not affect the version.</p> <p>If you specify a current
18655          * version number that does not match the true current version number, the request
18656          * fails.</p><p><h3>See Also:</h3>   <a
18657          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyManagedPrefixList">AWS
18658          * API Reference</a></p>
18659          *
18660          * Queues the request into a thread executor and triggers associated callback when operation has finished.
18661          */
18662         virtual void ModifyManagedPrefixListAsync(const Model::ModifyManagedPrefixListRequest& request, const ModifyManagedPrefixListResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
18663 
18664         /**
18665          * <p>Modifies the specified network interface attribute. You can specify only one
18666          * attribute at a time. You can use this action to attach and detach security
18667          * groups from an existing EC2 instance.</p><p><h3>See Also:</h3>   <a
18668          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyNetworkInterfaceAttribute">AWS
18669          * API Reference</a></p>
18670          */
18671         virtual Model::ModifyNetworkInterfaceAttributeOutcome ModifyNetworkInterfaceAttribute(const Model::ModifyNetworkInterfaceAttributeRequest& request) const;
18672 
18673         /**
18674          * <p>Modifies the specified network interface attribute. You can specify only one
18675          * attribute at a time. You can use this action to attach and detach security
18676          * groups from an existing EC2 instance.</p><p><h3>See Also:</h3>   <a
18677          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyNetworkInterfaceAttribute">AWS
18678          * API Reference</a></p>
18679          *
18680          * returns a future to the operation so that it can be executed in parallel to other requests.
18681          */
18682         virtual Model::ModifyNetworkInterfaceAttributeOutcomeCallable ModifyNetworkInterfaceAttributeCallable(const Model::ModifyNetworkInterfaceAttributeRequest& request) const;
18683 
18684         /**
18685          * <p>Modifies the specified network interface attribute. You can specify only one
18686          * attribute at a time. You can use this action to attach and detach security
18687          * groups from an existing EC2 instance.</p><p><h3>See Also:</h3>   <a
18688          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyNetworkInterfaceAttribute">AWS
18689          * API Reference</a></p>
18690          *
18691          * Queues the request into a thread executor and triggers associated callback when operation has finished.
18692          */
18693         virtual void ModifyNetworkInterfaceAttributeAsync(const Model::ModifyNetworkInterfaceAttributeRequest& request, const ModifyNetworkInterfaceAttributeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
18694 
18695         /**
18696          * <p>Modifies the Availability Zone, instance count, instance type, or network
18697          * platform (EC2-Classic or EC2-VPC) of your Reserved Instances. The Reserved
18698          * Instances to be modified must be identical, except for Availability Zone,
18699          * network platform, and instance type.</p> <p>For more information, see <a
18700          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-modifying.html">Modifying
18701          * Reserved Instances</a> in the <i>Amazon EC2 User Guide</i>.</p><p><h3>See
18702          * Also:</h3>   <a
18703          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyReservedInstances">AWS
18704          * API Reference</a></p>
18705          */
18706         virtual Model::ModifyReservedInstancesOutcome ModifyReservedInstances(const Model::ModifyReservedInstancesRequest& request) const;
18707 
18708         /**
18709          * <p>Modifies the Availability Zone, instance count, instance type, or network
18710          * platform (EC2-Classic or EC2-VPC) of your Reserved Instances. The Reserved
18711          * Instances to be modified must be identical, except for Availability Zone,
18712          * network platform, and instance type.</p> <p>For more information, see <a
18713          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-modifying.html">Modifying
18714          * Reserved Instances</a> in the <i>Amazon EC2 User Guide</i>.</p><p><h3>See
18715          * Also:</h3>   <a
18716          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyReservedInstances">AWS
18717          * API Reference</a></p>
18718          *
18719          * returns a future to the operation so that it can be executed in parallel to other requests.
18720          */
18721         virtual Model::ModifyReservedInstancesOutcomeCallable ModifyReservedInstancesCallable(const Model::ModifyReservedInstancesRequest& request) const;
18722 
18723         /**
18724          * <p>Modifies the Availability Zone, instance count, instance type, or network
18725          * platform (EC2-Classic or EC2-VPC) of your Reserved Instances. The Reserved
18726          * Instances to be modified must be identical, except for Availability Zone,
18727          * network platform, and instance type.</p> <p>For more information, see <a
18728          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-modifying.html">Modifying
18729          * Reserved Instances</a> in the <i>Amazon EC2 User Guide</i>.</p><p><h3>See
18730          * Also:</h3>   <a
18731          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyReservedInstances">AWS
18732          * API Reference</a></p>
18733          *
18734          * Queues the request into a thread executor and triggers associated callback when operation has finished.
18735          */
18736         virtual void ModifyReservedInstancesAsync(const Model::ModifyReservedInstancesRequest& request, const ModifyReservedInstancesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
18737 
18738         /**
18739          * <p>Modifies the rules of a security group.</p><p><h3>See Also:</h3>   <a
18740          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifySecurityGroupRules">AWS
18741          * API Reference</a></p>
18742          */
18743         virtual Model::ModifySecurityGroupRulesOutcome ModifySecurityGroupRules(const Model::ModifySecurityGroupRulesRequest& request) const;
18744 
18745         /**
18746          * <p>Modifies the rules of a security group.</p><p><h3>See Also:</h3>   <a
18747          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifySecurityGroupRules">AWS
18748          * API Reference</a></p>
18749          *
18750          * returns a future to the operation so that it can be executed in parallel to other requests.
18751          */
18752         virtual Model::ModifySecurityGroupRulesOutcomeCallable ModifySecurityGroupRulesCallable(const Model::ModifySecurityGroupRulesRequest& request) const;
18753 
18754         /**
18755          * <p>Modifies the rules of a security group.</p><p><h3>See Also:</h3>   <a
18756          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifySecurityGroupRules">AWS
18757          * API Reference</a></p>
18758          *
18759          * Queues the request into a thread executor and triggers associated callback when operation has finished.
18760          */
18761         virtual void ModifySecurityGroupRulesAsync(const Model::ModifySecurityGroupRulesRequest& request, const ModifySecurityGroupRulesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
18762 
18763         /**
18764          * <p>Adds or removes permission settings for the specified snapshot. You may add
18765          * or remove specified Amazon Web Services account IDs from a snapshot's list of
18766          * create volume permissions, but you cannot do both in a single operation. If you
18767          * need to both add and remove account IDs for a snapshot, you must use multiple
18768          * operations. You can make up to 500 modifications to a snapshot in a single
18769          * operation.</p> <p>Encrypted snapshots and snapshots with Amazon Web Services
18770          * Marketplace product codes cannot be made public. Snapshots encrypted with your
18771          * default KMS key cannot be shared with other accounts.</p> <p>For more
18772          * information about modifying snapshot permissions, see <a
18773          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-modifying-snapshot-permissions.html">Share
18774          * a snapshot</a> in the <i>Amazon Elastic Compute Cloud User
18775          * Guide</i>.</p><p><h3>See Also:</h3>   <a
18776          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifySnapshotAttribute">AWS
18777          * API Reference</a></p>
18778          */
18779         virtual Model::ModifySnapshotAttributeOutcome ModifySnapshotAttribute(const Model::ModifySnapshotAttributeRequest& request) const;
18780 
18781         /**
18782          * <p>Adds or removes permission settings for the specified snapshot. You may add
18783          * or remove specified Amazon Web Services account IDs from a snapshot's list of
18784          * create volume permissions, but you cannot do both in a single operation. If you
18785          * need to both add and remove account IDs for a snapshot, you must use multiple
18786          * operations. You can make up to 500 modifications to a snapshot in a single
18787          * operation.</p> <p>Encrypted snapshots and snapshots with Amazon Web Services
18788          * Marketplace product codes cannot be made public. Snapshots encrypted with your
18789          * default KMS key cannot be shared with other accounts.</p> <p>For more
18790          * information about modifying snapshot permissions, see <a
18791          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-modifying-snapshot-permissions.html">Share
18792          * a snapshot</a> in the <i>Amazon Elastic Compute Cloud User
18793          * Guide</i>.</p><p><h3>See Also:</h3>   <a
18794          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifySnapshotAttribute">AWS
18795          * API Reference</a></p>
18796          *
18797          * returns a future to the operation so that it can be executed in parallel to other requests.
18798          */
18799         virtual Model::ModifySnapshotAttributeOutcomeCallable ModifySnapshotAttributeCallable(const Model::ModifySnapshotAttributeRequest& request) const;
18800 
18801         /**
18802          * <p>Adds or removes permission settings for the specified snapshot. You may add
18803          * or remove specified Amazon Web Services account IDs from a snapshot's list of
18804          * create volume permissions, but you cannot do both in a single operation. If you
18805          * need to both add and remove account IDs for a snapshot, you must use multiple
18806          * operations. You can make up to 500 modifications to a snapshot in a single
18807          * operation.</p> <p>Encrypted snapshots and snapshots with Amazon Web Services
18808          * Marketplace product codes cannot be made public. Snapshots encrypted with your
18809          * default KMS key cannot be shared with other accounts.</p> <p>For more
18810          * information about modifying snapshot permissions, see <a
18811          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-modifying-snapshot-permissions.html">Share
18812          * a snapshot</a> in the <i>Amazon Elastic Compute Cloud User
18813          * Guide</i>.</p><p><h3>See Also:</h3>   <a
18814          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifySnapshotAttribute">AWS
18815          * API Reference</a></p>
18816          *
18817          * Queues the request into a thread executor and triggers associated callback when operation has finished.
18818          */
18819         virtual void ModifySnapshotAttributeAsync(const Model::ModifySnapshotAttributeRequest& request, const ModifySnapshotAttributeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
18820 
18821         /**
18822          * <p>Modifies the specified Spot Fleet request.</p> <p>You can only modify a Spot
18823          * Fleet request of type <code>maintain</code>.</p> <p>While the Spot Fleet request
18824          * is being modified, it is in the <code>modifying</code> state.</p> <p>To scale up
18825          * your Spot Fleet, increase its target capacity. The Spot Fleet launches the
18826          * additional Spot Instances according to the allocation strategy for the Spot
18827          * Fleet request. If the allocation strategy is <code>lowestPrice</code>, the Spot
18828          * Fleet launches instances using the Spot Instance pool with the lowest price. If
18829          * the allocation strategy is <code>diversified</code>, the Spot Fleet distributes
18830          * the instances across the Spot Instance pools. If the allocation strategy is
18831          * <code>capacityOptimized</code>, Spot Fleet launches instances from Spot Instance
18832          * pools with optimal capacity for the number of instances that are launching.</p>
18833          * <p>To scale down your Spot Fleet, decrease its target capacity. First, the Spot
18834          * Fleet cancels any open requests that exceed the new target capacity. You can
18835          * request that the Spot Fleet terminate Spot Instances until the size of the fleet
18836          * no longer exceeds the new target capacity. If the allocation strategy is
18837          * <code>lowestPrice</code>, the Spot Fleet terminates the instances with the
18838          * highest price per unit. If the allocation strategy is
18839          * <code>capacityOptimized</code>, the Spot Fleet terminates the instances in the
18840          * Spot Instance pools that have the least available Spot Instance capacity. If the
18841          * allocation strategy is <code>diversified</code>, the Spot Fleet terminates
18842          * instances across the Spot Instance pools. Alternatively, you can request that
18843          * the Spot Fleet keep the fleet at its current size, but not replace any Spot
18844          * Instances that are interrupted or that you terminate manually.</p> <p>If you are
18845          * finished with your Spot Fleet for now, but will use it again later, you can set
18846          * the target capacity to 0.</p><p><h3>See Also:</h3>   <a
18847          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifySpotFleetRequest">AWS
18848          * API Reference</a></p>
18849          */
18850         virtual Model::ModifySpotFleetRequestOutcome ModifySpotFleetRequest(const Model::ModifySpotFleetRequestRequest& request) const;
18851 
18852         /**
18853          * <p>Modifies the specified Spot Fleet request.</p> <p>You can only modify a Spot
18854          * Fleet request of type <code>maintain</code>.</p> <p>While the Spot Fleet request
18855          * is being modified, it is in the <code>modifying</code> state.</p> <p>To scale up
18856          * your Spot Fleet, increase its target capacity. The Spot Fleet launches the
18857          * additional Spot Instances according to the allocation strategy for the Spot
18858          * Fleet request. If the allocation strategy is <code>lowestPrice</code>, the Spot
18859          * Fleet launches instances using the Spot Instance pool with the lowest price. If
18860          * the allocation strategy is <code>diversified</code>, the Spot Fleet distributes
18861          * the instances across the Spot Instance pools. If the allocation strategy is
18862          * <code>capacityOptimized</code>, Spot Fleet launches instances from Spot Instance
18863          * pools with optimal capacity for the number of instances that are launching.</p>
18864          * <p>To scale down your Spot Fleet, decrease its target capacity. First, the Spot
18865          * Fleet cancels any open requests that exceed the new target capacity. You can
18866          * request that the Spot Fleet terminate Spot Instances until the size of the fleet
18867          * no longer exceeds the new target capacity. If the allocation strategy is
18868          * <code>lowestPrice</code>, the Spot Fleet terminates the instances with the
18869          * highest price per unit. If the allocation strategy is
18870          * <code>capacityOptimized</code>, the Spot Fleet terminates the instances in the
18871          * Spot Instance pools that have the least available Spot Instance capacity. If the
18872          * allocation strategy is <code>diversified</code>, the Spot Fleet terminates
18873          * instances across the Spot Instance pools. Alternatively, you can request that
18874          * the Spot Fleet keep the fleet at its current size, but not replace any Spot
18875          * Instances that are interrupted or that you terminate manually.</p> <p>If you are
18876          * finished with your Spot Fleet for now, but will use it again later, you can set
18877          * the target capacity to 0.</p><p><h3>See Also:</h3>   <a
18878          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifySpotFleetRequest">AWS
18879          * API Reference</a></p>
18880          *
18881          * returns a future to the operation so that it can be executed in parallel to other requests.
18882          */
18883         virtual Model::ModifySpotFleetRequestOutcomeCallable ModifySpotFleetRequestCallable(const Model::ModifySpotFleetRequestRequest& request) const;
18884 
18885         /**
18886          * <p>Modifies the specified Spot Fleet request.</p> <p>You can only modify a Spot
18887          * Fleet request of type <code>maintain</code>.</p> <p>While the Spot Fleet request
18888          * is being modified, it is in the <code>modifying</code> state.</p> <p>To scale up
18889          * your Spot Fleet, increase its target capacity. The Spot Fleet launches the
18890          * additional Spot Instances according to the allocation strategy for the Spot
18891          * Fleet request. If the allocation strategy is <code>lowestPrice</code>, the Spot
18892          * Fleet launches instances using the Spot Instance pool with the lowest price. If
18893          * the allocation strategy is <code>diversified</code>, the Spot Fleet distributes
18894          * the instances across the Spot Instance pools. If the allocation strategy is
18895          * <code>capacityOptimized</code>, Spot Fleet launches instances from Spot Instance
18896          * pools with optimal capacity for the number of instances that are launching.</p>
18897          * <p>To scale down your Spot Fleet, decrease its target capacity. First, the Spot
18898          * Fleet cancels any open requests that exceed the new target capacity. You can
18899          * request that the Spot Fleet terminate Spot Instances until the size of the fleet
18900          * no longer exceeds the new target capacity. If the allocation strategy is
18901          * <code>lowestPrice</code>, the Spot Fleet terminates the instances with the
18902          * highest price per unit. If the allocation strategy is
18903          * <code>capacityOptimized</code>, the Spot Fleet terminates the instances in the
18904          * Spot Instance pools that have the least available Spot Instance capacity. If the
18905          * allocation strategy is <code>diversified</code>, the Spot Fleet terminates
18906          * instances across the Spot Instance pools. Alternatively, you can request that
18907          * the Spot Fleet keep the fleet at its current size, but not replace any Spot
18908          * Instances that are interrupted or that you terminate manually.</p> <p>If you are
18909          * finished with your Spot Fleet for now, but will use it again later, you can set
18910          * the target capacity to 0.</p><p><h3>See Also:</h3>   <a
18911          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifySpotFleetRequest">AWS
18912          * API Reference</a></p>
18913          *
18914          * Queues the request into a thread executor and triggers associated callback when operation has finished.
18915          */
18916         virtual void ModifySpotFleetRequestAsync(const Model::ModifySpotFleetRequestRequest& request, const ModifySpotFleetRequestResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
18917 
18918         /**
18919          * <p>Modifies a subnet attribute. You can only modify one attribute at a
18920          * time.</p><p><h3>See Also:</h3>   <a
18921          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifySubnetAttribute">AWS
18922          * API Reference</a></p>
18923          */
18924         virtual Model::ModifySubnetAttributeOutcome ModifySubnetAttribute(const Model::ModifySubnetAttributeRequest& request) const;
18925 
18926         /**
18927          * <p>Modifies a subnet attribute. You can only modify one attribute at a
18928          * time.</p><p><h3>See Also:</h3>   <a
18929          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifySubnetAttribute">AWS
18930          * API Reference</a></p>
18931          *
18932          * returns a future to the operation so that it can be executed in parallel to other requests.
18933          */
18934         virtual Model::ModifySubnetAttributeOutcomeCallable ModifySubnetAttributeCallable(const Model::ModifySubnetAttributeRequest& request) const;
18935 
18936         /**
18937          * <p>Modifies a subnet attribute. You can only modify one attribute at a
18938          * time.</p><p><h3>See Also:</h3>   <a
18939          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifySubnetAttribute">AWS
18940          * API Reference</a></p>
18941          *
18942          * Queues the request into a thread executor and triggers associated callback when operation has finished.
18943          */
18944         virtual void ModifySubnetAttributeAsync(const Model::ModifySubnetAttributeRequest& request, const ModifySubnetAttributeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
18945 
18946         /**
18947          * <p>Allows or restricts mirroring network services.</p> <p> By default, Amazon
18948          * DNS network services are not eligible for Traffic Mirror. Use
18949          * <code>AddNetworkServices</code> to add network services to a Traffic Mirror
18950          * filter. When a network service is added to the Traffic Mirror filter, all
18951          * traffic related to that network service will be mirrored. When you no longer
18952          * want to mirror network services, use <code>RemoveNetworkServices</code> to
18953          * remove the network services from the Traffic Mirror filter. </p><p><h3>See
18954          * Also:</h3>   <a
18955          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyTrafficMirrorFilterNetworkServices">AWS
18956          * API Reference</a></p>
18957          */
18958         virtual Model::ModifyTrafficMirrorFilterNetworkServicesOutcome ModifyTrafficMirrorFilterNetworkServices(const Model::ModifyTrafficMirrorFilterNetworkServicesRequest& request) const;
18959 
18960         /**
18961          * <p>Allows or restricts mirroring network services.</p> <p> By default, Amazon
18962          * DNS network services are not eligible for Traffic Mirror. Use
18963          * <code>AddNetworkServices</code> to add network services to a Traffic Mirror
18964          * filter. When a network service is added to the Traffic Mirror filter, all
18965          * traffic related to that network service will be mirrored. When you no longer
18966          * want to mirror network services, use <code>RemoveNetworkServices</code> to
18967          * remove the network services from the Traffic Mirror filter. </p><p><h3>See
18968          * Also:</h3>   <a
18969          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyTrafficMirrorFilterNetworkServices">AWS
18970          * API Reference</a></p>
18971          *
18972          * returns a future to the operation so that it can be executed in parallel to other requests.
18973          */
18974         virtual Model::ModifyTrafficMirrorFilterNetworkServicesOutcomeCallable ModifyTrafficMirrorFilterNetworkServicesCallable(const Model::ModifyTrafficMirrorFilterNetworkServicesRequest& request) const;
18975 
18976         /**
18977          * <p>Allows or restricts mirroring network services.</p> <p> By default, Amazon
18978          * DNS network services are not eligible for Traffic Mirror. Use
18979          * <code>AddNetworkServices</code> to add network services to a Traffic Mirror
18980          * filter. When a network service is added to the Traffic Mirror filter, all
18981          * traffic related to that network service will be mirrored. When you no longer
18982          * want to mirror network services, use <code>RemoveNetworkServices</code> to
18983          * remove the network services from the Traffic Mirror filter. </p><p><h3>See
18984          * Also:</h3>   <a
18985          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyTrafficMirrorFilterNetworkServices">AWS
18986          * API Reference</a></p>
18987          *
18988          * Queues the request into a thread executor and triggers associated callback when operation has finished.
18989          */
18990         virtual void ModifyTrafficMirrorFilterNetworkServicesAsync(const Model::ModifyTrafficMirrorFilterNetworkServicesRequest& request, const ModifyTrafficMirrorFilterNetworkServicesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
18991 
18992         /**
18993          * <p>Modifies the specified Traffic Mirror rule.</p> <p>
18994          * <code>DestinationCidrBlock</code> and <code>SourceCidrBlock</code> must both be
18995          * an IPv4 range or an IPv6 range.</p><p><h3>See Also:</h3>   <a
18996          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyTrafficMirrorFilterRule">AWS
18997          * API Reference</a></p>
18998          */
18999         virtual Model::ModifyTrafficMirrorFilterRuleOutcome ModifyTrafficMirrorFilterRule(const Model::ModifyTrafficMirrorFilterRuleRequest& request) const;
19000 
19001         /**
19002          * <p>Modifies the specified Traffic Mirror rule.</p> <p>
19003          * <code>DestinationCidrBlock</code> and <code>SourceCidrBlock</code> must both be
19004          * an IPv4 range or an IPv6 range.</p><p><h3>See Also:</h3>   <a
19005          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyTrafficMirrorFilterRule">AWS
19006          * API Reference</a></p>
19007          *
19008          * returns a future to the operation so that it can be executed in parallel to other requests.
19009          */
19010         virtual Model::ModifyTrafficMirrorFilterRuleOutcomeCallable ModifyTrafficMirrorFilterRuleCallable(const Model::ModifyTrafficMirrorFilterRuleRequest& request) const;
19011 
19012         /**
19013          * <p>Modifies the specified Traffic Mirror rule.</p> <p>
19014          * <code>DestinationCidrBlock</code> and <code>SourceCidrBlock</code> must both be
19015          * an IPv4 range or an IPv6 range.</p><p><h3>See Also:</h3>   <a
19016          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyTrafficMirrorFilterRule">AWS
19017          * API Reference</a></p>
19018          *
19019          * Queues the request into a thread executor and triggers associated callback when operation has finished.
19020          */
19021         virtual void ModifyTrafficMirrorFilterRuleAsync(const Model::ModifyTrafficMirrorFilterRuleRequest& request, const ModifyTrafficMirrorFilterRuleResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
19022 
19023         /**
19024          * <p>Modifies a Traffic Mirror session.</p><p><h3>See Also:</h3>   <a
19025          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyTrafficMirrorSession">AWS
19026          * API Reference</a></p>
19027          */
19028         virtual Model::ModifyTrafficMirrorSessionOutcome ModifyTrafficMirrorSession(const Model::ModifyTrafficMirrorSessionRequest& request) const;
19029 
19030         /**
19031          * <p>Modifies a Traffic Mirror session.</p><p><h3>See Also:</h3>   <a
19032          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyTrafficMirrorSession">AWS
19033          * API Reference</a></p>
19034          *
19035          * returns a future to the operation so that it can be executed in parallel to other requests.
19036          */
19037         virtual Model::ModifyTrafficMirrorSessionOutcomeCallable ModifyTrafficMirrorSessionCallable(const Model::ModifyTrafficMirrorSessionRequest& request) const;
19038 
19039         /**
19040          * <p>Modifies a Traffic Mirror session.</p><p><h3>See Also:</h3>   <a
19041          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyTrafficMirrorSession">AWS
19042          * API Reference</a></p>
19043          *
19044          * Queues the request into a thread executor and triggers associated callback when operation has finished.
19045          */
19046         virtual void ModifyTrafficMirrorSessionAsync(const Model::ModifyTrafficMirrorSessionRequest& request, const ModifyTrafficMirrorSessionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
19047 
19048         /**
19049          * <p>Modifies the specified transit gateway. When you modify a transit gateway,
19050          * the modified options are applied to new transit gateway attachments only. Your
19051          * existing transit gateway attachments are not modified.</p><p><h3>See Also:</h3>
19052          * <a
19053          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyTransitGateway">AWS
19054          * API Reference</a></p>
19055          */
19056         virtual Model::ModifyTransitGatewayOutcome ModifyTransitGateway(const Model::ModifyTransitGatewayRequest& request) const;
19057 
19058         /**
19059          * <p>Modifies the specified transit gateway. When you modify a transit gateway,
19060          * the modified options are applied to new transit gateway attachments only. Your
19061          * existing transit gateway attachments are not modified.</p><p><h3>See Also:</h3>
19062          * <a
19063          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyTransitGateway">AWS
19064          * API Reference</a></p>
19065          *
19066          * returns a future to the operation so that it can be executed in parallel to other requests.
19067          */
19068         virtual Model::ModifyTransitGatewayOutcomeCallable ModifyTransitGatewayCallable(const Model::ModifyTransitGatewayRequest& request) const;
19069 
19070         /**
19071          * <p>Modifies the specified transit gateway. When you modify a transit gateway,
19072          * the modified options are applied to new transit gateway attachments only. Your
19073          * existing transit gateway attachments are not modified.</p><p><h3>See Also:</h3>
19074          * <a
19075          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyTransitGateway">AWS
19076          * API Reference</a></p>
19077          *
19078          * Queues the request into a thread executor and triggers associated callback when operation has finished.
19079          */
19080         virtual void ModifyTransitGatewayAsync(const Model::ModifyTransitGatewayRequest& request, const ModifyTransitGatewayResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
19081 
19082         /**
19083          * <p>Modifies a reference (route) to a prefix list in a specified transit gateway
19084          * route table.</p><p><h3>See Also:</h3>   <a
19085          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyTransitGatewayPrefixListReference">AWS
19086          * API Reference</a></p>
19087          */
19088         virtual Model::ModifyTransitGatewayPrefixListReferenceOutcome ModifyTransitGatewayPrefixListReference(const Model::ModifyTransitGatewayPrefixListReferenceRequest& request) const;
19089 
19090         /**
19091          * <p>Modifies a reference (route) to a prefix list in a specified transit gateway
19092          * route table.</p><p><h3>See Also:</h3>   <a
19093          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyTransitGatewayPrefixListReference">AWS
19094          * API Reference</a></p>
19095          *
19096          * returns a future to the operation so that it can be executed in parallel to other requests.
19097          */
19098         virtual Model::ModifyTransitGatewayPrefixListReferenceOutcomeCallable ModifyTransitGatewayPrefixListReferenceCallable(const Model::ModifyTransitGatewayPrefixListReferenceRequest& request) const;
19099 
19100         /**
19101          * <p>Modifies a reference (route) to a prefix list in a specified transit gateway
19102          * route table.</p><p><h3>See Also:</h3>   <a
19103          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyTransitGatewayPrefixListReference">AWS
19104          * API Reference</a></p>
19105          *
19106          * Queues the request into a thread executor and triggers associated callback when operation has finished.
19107          */
19108         virtual void ModifyTransitGatewayPrefixListReferenceAsync(const Model::ModifyTransitGatewayPrefixListReferenceRequest& request, const ModifyTransitGatewayPrefixListReferenceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
19109 
19110         /**
19111          * <p>Modifies the specified VPC attachment.</p><p><h3>See Also:</h3>   <a
19112          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyTransitGatewayVpcAttachment">AWS
19113          * API Reference</a></p>
19114          */
19115         virtual Model::ModifyTransitGatewayVpcAttachmentOutcome ModifyTransitGatewayVpcAttachment(const Model::ModifyTransitGatewayVpcAttachmentRequest& request) const;
19116 
19117         /**
19118          * <p>Modifies the specified VPC attachment.</p><p><h3>See Also:</h3>   <a
19119          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyTransitGatewayVpcAttachment">AWS
19120          * API Reference</a></p>
19121          *
19122          * returns a future to the operation so that it can be executed in parallel to other requests.
19123          */
19124         virtual Model::ModifyTransitGatewayVpcAttachmentOutcomeCallable ModifyTransitGatewayVpcAttachmentCallable(const Model::ModifyTransitGatewayVpcAttachmentRequest& request) const;
19125 
19126         /**
19127          * <p>Modifies the specified VPC attachment.</p><p><h3>See Also:</h3>   <a
19128          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyTransitGatewayVpcAttachment">AWS
19129          * API Reference</a></p>
19130          *
19131          * Queues the request into a thread executor and triggers associated callback when operation has finished.
19132          */
19133         virtual void ModifyTransitGatewayVpcAttachmentAsync(const Model::ModifyTransitGatewayVpcAttachmentRequest& request, const ModifyTransitGatewayVpcAttachmentResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
19134 
19135         /**
19136          * <p>You can modify several parameters of an existing EBS volume, including volume
19137          * size, volume type, and IOPS capacity. If your EBS volume is attached to a
19138          * current-generation EC2 instance type, you might be able to apply these changes
19139          * without stopping the instance or detaching the volume from it. For more
19140          * information about modifying EBS volumes, see <a
19141          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-modify-volume.html">Amazon
19142          * EBS Elastic Volumes</a> (Linux instances) or <a
19143          * href="https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ebs-modify-volume.html">Amazon
19144          * EBS Elastic Volumes</a> (Windows instances).</p> <p>When you complete a resize
19145          * operation on your volume, you need to extend the volume's file-system size to
19146          * take advantage of the new storage capacity. For more information, see <a
19147          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-expand-volume.html#recognize-expanded-volume-linux">Extend
19148          * a Linux file system</a> or <a
19149          * href="https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ebs-expand-volume.html#recognize-expanded-volume-windows">Extend
19150          * a Windows file system</a>.</p> <p> You can use CloudWatch Events to check the
19151          * status of a modification to an EBS volume. For information about CloudWatch
19152          * Events, see the <a
19153          * href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/">Amazon
19154          * CloudWatch Events User Guide</a>. You can also track the status of a
19155          * modification using <a>DescribeVolumesModifications</a>. For information about
19156          * tracking status changes using either method, see <a
19157          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/monitoring-volume-modifications.html">Monitor
19158          * the progress of volume modifications</a>.</p> <p>With previous-generation
19159          * instance types, resizing an EBS volume might require detaching and reattaching
19160          * the volume or stopping and restarting the instance.</p> <p>If you reach the
19161          * maximum volume modification rate per volume limit, you must wait at least six
19162          * hours before applying further modifications to the affected EBS
19163          * volume.</p><p><h3>See Also:</h3>   <a
19164          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyVolume">AWS
19165          * API Reference</a></p>
19166          */
19167         virtual Model::ModifyVolumeOutcome ModifyVolume(const Model::ModifyVolumeRequest& request) const;
19168 
19169         /**
19170          * <p>You can modify several parameters of an existing EBS volume, including volume
19171          * size, volume type, and IOPS capacity. If your EBS volume is attached to a
19172          * current-generation EC2 instance type, you might be able to apply these changes
19173          * without stopping the instance or detaching the volume from it. For more
19174          * information about modifying EBS volumes, see <a
19175          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-modify-volume.html">Amazon
19176          * EBS Elastic Volumes</a> (Linux instances) or <a
19177          * href="https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ebs-modify-volume.html">Amazon
19178          * EBS Elastic Volumes</a> (Windows instances).</p> <p>When you complete a resize
19179          * operation on your volume, you need to extend the volume's file-system size to
19180          * take advantage of the new storage capacity. For more information, see <a
19181          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-expand-volume.html#recognize-expanded-volume-linux">Extend
19182          * a Linux file system</a> or <a
19183          * href="https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ebs-expand-volume.html#recognize-expanded-volume-windows">Extend
19184          * a Windows file system</a>.</p> <p> You can use CloudWatch Events to check the
19185          * status of a modification to an EBS volume. For information about CloudWatch
19186          * Events, see the <a
19187          * href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/">Amazon
19188          * CloudWatch Events User Guide</a>. You can also track the status of a
19189          * modification using <a>DescribeVolumesModifications</a>. For information about
19190          * tracking status changes using either method, see <a
19191          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/monitoring-volume-modifications.html">Monitor
19192          * the progress of volume modifications</a>.</p> <p>With previous-generation
19193          * instance types, resizing an EBS volume might require detaching and reattaching
19194          * the volume or stopping and restarting the instance.</p> <p>If you reach the
19195          * maximum volume modification rate per volume limit, you must wait at least six
19196          * hours before applying further modifications to the affected EBS
19197          * volume.</p><p><h3>See Also:</h3>   <a
19198          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyVolume">AWS
19199          * API Reference</a></p>
19200          *
19201          * returns a future to the operation so that it can be executed in parallel to other requests.
19202          */
19203         virtual Model::ModifyVolumeOutcomeCallable ModifyVolumeCallable(const Model::ModifyVolumeRequest& request) const;
19204 
19205         /**
19206          * <p>You can modify several parameters of an existing EBS volume, including volume
19207          * size, volume type, and IOPS capacity. If your EBS volume is attached to a
19208          * current-generation EC2 instance type, you might be able to apply these changes
19209          * without stopping the instance or detaching the volume from it. For more
19210          * information about modifying EBS volumes, see <a
19211          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-modify-volume.html">Amazon
19212          * EBS Elastic Volumes</a> (Linux instances) or <a
19213          * href="https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ebs-modify-volume.html">Amazon
19214          * EBS Elastic Volumes</a> (Windows instances).</p> <p>When you complete a resize
19215          * operation on your volume, you need to extend the volume's file-system size to
19216          * take advantage of the new storage capacity. For more information, see <a
19217          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-expand-volume.html#recognize-expanded-volume-linux">Extend
19218          * a Linux file system</a> or <a
19219          * href="https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ebs-expand-volume.html#recognize-expanded-volume-windows">Extend
19220          * a Windows file system</a>.</p> <p> You can use CloudWatch Events to check the
19221          * status of a modification to an EBS volume. For information about CloudWatch
19222          * Events, see the <a
19223          * href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/">Amazon
19224          * CloudWatch Events User Guide</a>. You can also track the status of a
19225          * modification using <a>DescribeVolumesModifications</a>. For information about
19226          * tracking status changes using either method, see <a
19227          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/monitoring-volume-modifications.html">Monitor
19228          * the progress of volume modifications</a>.</p> <p>With previous-generation
19229          * instance types, resizing an EBS volume might require detaching and reattaching
19230          * the volume or stopping and restarting the instance.</p> <p>If you reach the
19231          * maximum volume modification rate per volume limit, you must wait at least six
19232          * hours before applying further modifications to the affected EBS
19233          * volume.</p><p><h3>See Also:</h3>   <a
19234          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyVolume">AWS
19235          * API Reference</a></p>
19236          *
19237          * Queues the request into a thread executor and triggers associated callback when operation has finished.
19238          */
19239         virtual void ModifyVolumeAsync(const Model::ModifyVolumeRequest& request, const ModifyVolumeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
19240 
19241         /**
19242          * <p>Modifies a volume attribute.</p> <p>By default, all I/O operations for the
19243          * volume are suspended when the data on the volume is determined to be potentially
19244          * inconsistent, to prevent undetectable, latent data corruption. The I/O access to
19245          * the volume can be resumed by first enabling I/O access and then checking the
19246          * data consistency on your volume.</p> <p>You can change the default behavior to
19247          * resume I/O operations. We recommend that you change this only for boot volumes
19248          * or for volumes that are stateless or disposable.</p><p><h3>See Also:</h3>   <a
19249          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyVolumeAttribute">AWS
19250          * API Reference</a></p>
19251          */
19252         virtual Model::ModifyVolumeAttributeOutcome ModifyVolumeAttribute(const Model::ModifyVolumeAttributeRequest& request) const;
19253 
19254         /**
19255          * <p>Modifies a volume attribute.</p> <p>By default, all I/O operations for the
19256          * volume are suspended when the data on the volume is determined to be potentially
19257          * inconsistent, to prevent undetectable, latent data corruption. The I/O access to
19258          * the volume can be resumed by first enabling I/O access and then checking the
19259          * data consistency on your volume.</p> <p>You can change the default behavior to
19260          * resume I/O operations. We recommend that you change this only for boot volumes
19261          * or for volumes that are stateless or disposable.</p><p><h3>See Also:</h3>   <a
19262          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyVolumeAttribute">AWS
19263          * API Reference</a></p>
19264          *
19265          * returns a future to the operation so that it can be executed in parallel to other requests.
19266          */
19267         virtual Model::ModifyVolumeAttributeOutcomeCallable ModifyVolumeAttributeCallable(const Model::ModifyVolumeAttributeRequest& request) const;
19268 
19269         /**
19270          * <p>Modifies a volume attribute.</p> <p>By default, all I/O operations for the
19271          * volume are suspended when the data on the volume is determined to be potentially
19272          * inconsistent, to prevent undetectable, latent data corruption. The I/O access to
19273          * the volume can be resumed by first enabling I/O access and then checking the
19274          * data consistency on your volume.</p> <p>You can change the default behavior to
19275          * resume I/O operations. We recommend that you change this only for boot volumes
19276          * or for volumes that are stateless or disposable.</p><p><h3>See Also:</h3>   <a
19277          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyVolumeAttribute">AWS
19278          * API Reference</a></p>
19279          *
19280          * Queues the request into a thread executor and triggers associated callback when operation has finished.
19281          */
19282         virtual void ModifyVolumeAttributeAsync(const Model::ModifyVolumeAttributeRequest& request, const ModifyVolumeAttributeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
19283 
19284         /**
19285          * <p>Modifies the specified attribute of the specified VPC.</p><p><h3>See
19286          * Also:</h3>   <a
19287          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyVpcAttribute">AWS
19288          * API Reference</a></p>
19289          */
19290         virtual Model::ModifyVpcAttributeOutcome ModifyVpcAttribute(const Model::ModifyVpcAttributeRequest& request) const;
19291 
19292         /**
19293          * <p>Modifies the specified attribute of the specified VPC.</p><p><h3>See
19294          * Also:</h3>   <a
19295          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyVpcAttribute">AWS
19296          * API Reference</a></p>
19297          *
19298          * returns a future to the operation so that it can be executed in parallel to other requests.
19299          */
19300         virtual Model::ModifyVpcAttributeOutcomeCallable ModifyVpcAttributeCallable(const Model::ModifyVpcAttributeRequest& request) const;
19301 
19302         /**
19303          * <p>Modifies the specified attribute of the specified VPC.</p><p><h3>See
19304          * Also:</h3>   <a
19305          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyVpcAttribute">AWS
19306          * API Reference</a></p>
19307          *
19308          * Queues the request into a thread executor and triggers associated callback when operation has finished.
19309          */
19310         virtual void ModifyVpcAttributeAsync(const Model::ModifyVpcAttributeRequest& request, const ModifyVpcAttributeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
19311 
19312         /**
19313          * <p>Modifies attributes of a specified VPC endpoint. The attributes that you can
19314          * modify depend on the type of VPC endpoint (interface, gateway, or Gateway Load
19315          * Balancer). For more information, see <a
19316          * href="https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints.html">VPC
19317          * Endpoints</a> in the <i>Amazon Virtual Private Cloud User
19318          * Guide</i>.</p><p><h3>See Also:</h3>   <a
19319          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyVpcEndpoint">AWS
19320          * API Reference</a></p>
19321          */
19322         virtual Model::ModifyVpcEndpointOutcome ModifyVpcEndpoint(const Model::ModifyVpcEndpointRequest& request) const;
19323 
19324         /**
19325          * <p>Modifies attributes of a specified VPC endpoint. The attributes that you can
19326          * modify depend on the type of VPC endpoint (interface, gateway, or Gateway Load
19327          * Balancer). For more information, see <a
19328          * href="https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints.html">VPC
19329          * Endpoints</a> in the <i>Amazon Virtual Private Cloud User
19330          * Guide</i>.</p><p><h3>See Also:</h3>   <a
19331          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyVpcEndpoint">AWS
19332          * API Reference</a></p>
19333          *
19334          * returns a future to the operation so that it can be executed in parallel to other requests.
19335          */
19336         virtual Model::ModifyVpcEndpointOutcomeCallable ModifyVpcEndpointCallable(const Model::ModifyVpcEndpointRequest& request) const;
19337 
19338         /**
19339          * <p>Modifies attributes of a specified VPC endpoint. The attributes that you can
19340          * modify depend on the type of VPC endpoint (interface, gateway, or Gateway Load
19341          * Balancer). For more information, see <a
19342          * href="https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints.html">VPC
19343          * Endpoints</a> in the <i>Amazon Virtual Private Cloud User
19344          * Guide</i>.</p><p><h3>See Also:</h3>   <a
19345          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyVpcEndpoint">AWS
19346          * API Reference</a></p>
19347          *
19348          * Queues the request into a thread executor and triggers associated callback when operation has finished.
19349          */
19350         virtual void ModifyVpcEndpointAsync(const Model::ModifyVpcEndpointRequest& request, const ModifyVpcEndpointResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
19351 
19352         /**
19353          * <p>Modifies a connection notification for VPC endpoint or VPC endpoint service.
19354          * You can change the SNS topic for the notification, or the events for which to be
19355          * notified. </p><p><h3>See Also:</h3>   <a
19356          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyVpcEndpointConnectionNotification">AWS
19357          * API Reference</a></p>
19358          */
19359         virtual Model::ModifyVpcEndpointConnectionNotificationOutcome ModifyVpcEndpointConnectionNotification(const Model::ModifyVpcEndpointConnectionNotificationRequest& request) const;
19360 
19361         /**
19362          * <p>Modifies a connection notification for VPC endpoint or VPC endpoint service.
19363          * You can change the SNS topic for the notification, or the events for which to be
19364          * notified. </p><p><h3>See Also:</h3>   <a
19365          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyVpcEndpointConnectionNotification">AWS
19366          * API Reference</a></p>
19367          *
19368          * returns a future to the operation so that it can be executed in parallel to other requests.
19369          */
19370         virtual Model::ModifyVpcEndpointConnectionNotificationOutcomeCallable ModifyVpcEndpointConnectionNotificationCallable(const Model::ModifyVpcEndpointConnectionNotificationRequest& request) const;
19371 
19372         /**
19373          * <p>Modifies a connection notification for VPC endpoint or VPC endpoint service.
19374          * You can change the SNS topic for the notification, or the events for which to be
19375          * notified. </p><p><h3>See Also:</h3>   <a
19376          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyVpcEndpointConnectionNotification">AWS
19377          * API Reference</a></p>
19378          *
19379          * Queues the request into a thread executor and triggers associated callback when operation has finished.
19380          */
19381         virtual void ModifyVpcEndpointConnectionNotificationAsync(const Model::ModifyVpcEndpointConnectionNotificationRequest& request, const ModifyVpcEndpointConnectionNotificationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
19382 
19383         /**
19384          * <p>Modifies the attributes of your VPC endpoint service configuration. You can
19385          * change the Network Load Balancers or Gateway Load Balancers for your service,
19386          * and you can specify whether acceptance is required for requests to connect to
19387          * your endpoint service through an interface VPC endpoint.</p> <p>If you set or
19388          * modify the private DNS name, you must prove that you own the private DNS domain
19389          * name. For more information, see <a
19390          * href="https://docs.aws.amazon.com/vpc/latest/userguide/endpoint-services-dns-validation.html">VPC
19391          * Endpoint Service Private DNS Name Verification</a> in the <i>Amazon Virtual
19392          * Private Cloud User Guide</i>.</p><p><h3>See Also:</h3>   <a
19393          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyVpcEndpointServiceConfiguration">AWS
19394          * API Reference</a></p>
19395          */
19396         virtual Model::ModifyVpcEndpointServiceConfigurationOutcome ModifyVpcEndpointServiceConfiguration(const Model::ModifyVpcEndpointServiceConfigurationRequest& request) const;
19397 
19398         /**
19399          * <p>Modifies the attributes of your VPC endpoint service configuration. You can
19400          * change the Network Load Balancers or Gateway Load Balancers for your service,
19401          * and you can specify whether acceptance is required for requests to connect to
19402          * your endpoint service through an interface VPC endpoint.</p> <p>If you set or
19403          * modify the private DNS name, you must prove that you own the private DNS domain
19404          * name. For more information, see <a
19405          * href="https://docs.aws.amazon.com/vpc/latest/userguide/endpoint-services-dns-validation.html">VPC
19406          * Endpoint Service Private DNS Name Verification</a> in the <i>Amazon Virtual
19407          * Private Cloud User Guide</i>.</p><p><h3>See Also:</h3>   <a
19408          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyVpcEndpointServiceConfiguration">AWS
19409          * API Reference</a></p>
19410          *
19411          * returns a future to the operation so that it can be executed in parallel to other requests.
19412          */
19413         virtual Model::ModifyVpcEndpointServiceConfigurationOutcomeCallable ModifyVpcEndpointServiceConfigurationCallable(const Model::ModifyVpcEndpointServiceConfigurationRequest& request) const;
19414 
19415         /**
19416          * <p>Modifies the attributes of your VPC endpoint service configuration. You can
19417          * change the Network Load Balancers or Gateway Load Balancers for your service,
19418          * and you can specify whether acceptance is required for requests to connect to
19419          * your endpoint service through an interface VPC endpoint.</p> <p>If you set or
19420          * modify the private DNS name, you must prove that you own the private DNS domain
19421          * name. For more information, see <a
19422          * href="https://docs.aws.amazon.com/vpc/latest/userguide/endpoint-services-dns-validation.html">VPC
19423          * Endpoint Service Private DNS Name Verification</a> in the <i>Amazon Virtual
19424          * Private Cloud User Guide</i>.</p><p><h3>See Also:</h3>   <a
19425          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyVpcEndpointServiceConfiguration">AWS
19426          * API Reference</a></p>
19427          *
19428          * Queues the request into a thread executor and triggers associated callback when operation has finished.
19429          */
19430         virtual void ModifyVpcEndpointServiceConfigurationAsync(const Model::ModifyVpcEndpointServiceConfigurationRequest& request, const ModifyVpcEndpointServiceConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
19431 
19432         /**
19433          * <p>Modifies the permissions for your <a
19434          * href="https://docs.aws.amazon.com/vpc/latest/userguide/endpoint-service.html">VPC
19435          * endpoint service</a>. You can add or remove permissions for service consumers
19436          * (IAM users, IAM roles, and Amazon Web Services accounts) to connect to your
19437          * endpoint service.</p> <p>If you grant permissions to all principals, the service
19438          * is public. Any users who know the name of a public service can send a request to
19439          * attach an endpoint. If the service does not require manual approval, attachments
19440          * are automatically approved.</p><p><h3>See Also:</h3>   <a
19441          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyVpcEndpointServicePermissions">AWS
19442          * API Reference</a></p>
19443          */
19444         virtual Model::ModifyVpcEndpointServicePermissionsOutcome ModifyVpcEndpointServicePermissions(const Model::ModifyVpcEndpointServicePermissionsRequest& request) const;
19445 
19446         /**
19447          * <p>Modifies the permissions for your <a
19448          * href="https://docs.aws.amazon.com/vpc/latest/userguide/endpoint-service.html">VPC
19449          * endpoint service</a>. You can add or remove permissions for service consumers
19450          * (IAM users, IAM roles, and Amazon Web Services accounts) to connect to your
19451          * endpoint service.</p> <p>If you grant permissions to all principals, the service
19452          * is public. Any users who know the name of a public service can send a request to
19453          * attach an endpoint. If the service does not require manual approval, attachments
19454          * are automatically approved.</p><p><h3>See Also:</h3>   <a
19455          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyVpcEndpointServicePermissions">AWS
19456          * API Reference</a></p>
19457          *
19458          * returns a future to the operation so that it can be executed in parallel to other requests.
19459          */
19460         virtual Model::ModifyVpcEndpointServicePermissionsOutcomeCallable ModifyVpcEndpointServicePermissionsCallable(const Model::ModifyVpcEndpointServicePermissionsRequest& request) const;
19461 
19462         /**
19463          * <p>Modifies the permissions for your <a
19464          * href="https://docs.aws.amazon.com/vpc/latest/userguide/endpoint-service.html">VPC
19465          * endpoint service</a>. You can add or remove permissions for service consumers
19466          * (IAM users, IAM roles, and Amazon Web Services accounts) to connect to your
19467          * endpoint service.</p> <p>If you grant permissions to all principals, the service
19468          * is public. Any users who know the name of a public service can send a request to
19469          * attach an endpoint. If the service does not require manual approval, attachments
19470          * are automatically approved.</p><p><h3>See Also:</h3>   <a
19471          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyVpcEndpointServicePermissions">AWS
19472          * API Reference</a></p>
19473          *
19474          * Queues the request into a thread executor and triggers associated callback when operation has finished.
19475          */
19476         virtual void ModifyVpcEndpointServicePermissionsAsync(const Model::ModifyVpcEndpointServicePermissionsRequest& request, const ModifyVpcEndpointServicePermissionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
19477 
19478         /**
19479          * <p>Modifies the VPC peering connection options on one side of a VPC peering
19480          * connection. You can do the following:</p> <ul> <li> <p>Enable/disable
19481          * communication over the peering connection between an EC2-Classic instance that's
19482          * linked to your VPC (using ClassicLink) and instances in the peer VPC.</p> </li>
19483          * <li> <p>Enable/disable communication over the peering connection between
19484          * instances in your VPC and an EC2-Classic instance that's linked to the peer
19485          * VPC.</p> </li> <li> <p>Enable/disable the ability to resolve public DNS
19486          * hostnames to private IP addresses when queried from instances in the peer
19487          * VPC.</p> </li> </ul> <p>If the peered VPCs are in the same Amazon Web Services
19488          * account, you can enable DNS resolution for queries from the local VPC. This
19489          * ensures that queries from the local VPC resolve to private IP addresses in the
19490          * peer VPC. This option is not available if the peered VPCs are in different
19491          * different Amazon Web Services accounts or different Regions. For peered VPCs in
19492          * different Amazon Web Services accounts, each Amazon Web Services account owner
19493          * must initiate a separate request to modify the peering connection options. For
19494          * inter-region peering connections, you must use the Region for the requester VPC
19495          * to modify the requester VPC peering options and the Region for the accepter VPC
19496          * to modify the accepter VPC peering options. To verify which VPCs are the
19497          * accepter and the requester for a VPC peering connection, use the
19498          * <a>DescribeVpcPeeringConnections</a> command.</p><p><h3>See Also:</h3>   <a
19499          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyVpcPeeringConnectionOptions">AWS
19500          * API Reference</a></p>
19501          */
19502         virtual Model::ModifyVpcPeeringConnectionOptionsOutcome ModifyVpcPeeringConnectionOptions(const Model::ModifyVpcPeeringConnectionOptionsRequest& request) const;
19503 
19504         /**
19505          * <p>Modifies the VPC peering connection options on one side of a VPC peering
19506          * connection. You can do the following:</p> <ul> <li> <p>Enable/disable
19507          * communication over the peering connection between an EC2-Classic instance that's
19508          * linked to your VPC (using ClassicLink) and instances in the peer VPC.</p> </li>
19509          * <li> <p>Enable/disable communication over the peering connection between
19510          * instances in your VPC and an EC2-Classic instance that's linked to the peer
19511          * VPC.</p> </li> <li> <p>Enable/disable the ability to resolve public DNS
19512          * hostnames to private IP addresses when queried from instances in the peer
19513          * VPC.</p> </li> </ul> <p>If the peered VPCs are in the same Amazon Web Services
19514          * account, you can enable DNS resolution for queries from the local VPC. This
19515          * ensures that queries from the local VPC resolve to private IP addresses in the
19516          * peer VPC. This option is not available if the peered VPCs are in different
19517          * different Amazon Web Services accounts or different Regions. For peered VPCs in
19518          * different Amazon Web Services accounts, each Amazon Web Services account owner
19519          * must initiate a separate request to modify the peering connection options. For
19520          * inter-region peering connections, you must use the Region for the requester VPC
19521          * to modify the requester VPC peering options and the Region for the accepter VPC
19522          * to modify the accepter VPC peering options. To verify which VPCs are the
19523          * accepter and the requester for a VPC peering connection, use the
19524          * <a>DescribeVpcPeeringConnections</a> command.</p><p><h3>See Also:</h3>   <a
19525          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyVpcPeeringConnectionOptions">AWS
19526          * API Reference</a></p>
19527          *
19528          * returns a future to the operation so that it can be executed in parallel to other requests.
19529          */
19530         virtual Model::ModifyVpcPeeringConnectionOptionsOutcomeCallable ModifyVpcPeeringConnectionOptionsCallable(const Model::ModifyVpcPeeringConnectionOptionsRequest& request) const;
19531 
19532         /**
19533          * <p>Modifies the VPC peering connection options on one side of a VPC peering
19534          * connection. You can do the following:</p> <ul> <li> <p>Enable/disable
19535          * communication over the peering connection between an EC2-Classic instance that's
19536          * linked to your VPC (using ClassicLink) and instances in the peer VPC.</p> </li>
19537          * <li> <p>Enable/disable communication over the peering connection between
19538          * instances in your VPC and an EC2-Classic instance that's linked to the peer
19539          * VPC.</p> </li> <li> <p>Enable/disable the ability to resolve public DNS
19540          * hostnames to private IP addresses when queried from instances in the peer
19541          * VPC.</p> </li> </ul> <p>If the peered VPCs are in the same Amazon Web Services
19542          * account, you can enable DNS resolution for queries from the local VPC. This
19543          * ensures that queries from the local VPC resolve to private IP addresses in the
19544          * peer VPC. This option is not available if the peered VPCs are in different
19545          * different Amazon Web Services accounts or different Regions. For peered VPCs in
19546          * different Amazon Web Services accounts, each Amazon Web Services account owner
19547          * must initiate a separate request to modify the peering connection options. For
19548          * inter-region peering connections, you must use the Region for the requester VPC
19549          * to modify the requester VPC peering options and the Region for the accepter VPC
19550          * to modify the accepter VPC peering options. To verify which VPCs are the
19551          * accepter and the requester for a VPC peering connection, use the
19552          * <a>DescribeVpcPeeringConnections</a> command.</p><p><h3>See Also:</h3>   <a
19553          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyVpcPeeringConnectionOptions">AWS
19554          * API Reference</a></p>
19555          *
19556          * Queues the request into a thread executor and triggers associated callback when operation has finished.
19557          */
19558         virtual void ModifyVpcPeeringConnectionOptionsAsync(const Model::ModifyVpcPeeringConnectionOptionsRequest& request, const ModifyVpcPeeringConnectionOptionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
19559 
19560         /**
19561          * <p>Modifies the instance tenancy attribute of the specified VPC. You can change
19562          * the instance tenancy attribute of a VPC to <code>default</code> only. You cannot
19563          * change the instance tenancy attribute to <code>dedicated</code>.</p> <p>After
19564          * you modify the tenancy of the VPC, any new instances that you launch into the
19565          * VPC have a tenancy of <code>default</code>, unless you specify otherwise during
19566          * launch. The tenancy of any existing instances in the VPC is not affected.</p>
19567          * <p>For more information, see <a
19568          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-instance.html">Dedicated
19569          * Instances</a> in the <i>Amazon Elastic Compute Cloud User
19570          * Guide</i>.</p><p><h3>See Also:</h3>   <a
19571          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyVpcTenancy">AWS
19572          * API Reference</a></p>
19573          */
19574         virtual Model::ModifyVpcTenancyOutcome ModifyVpcTenancy(const Model::ModifyVpcTenancyRequest& request) const;
19575 
19576         /**
19577          * <p>Modifies the instance tenancy attribute of the specified VPC. You can change
19578          * the instance tenancy attribute of a VPC to <code>default</code> only. You cannot
19579          * change the instance tenancy attribute to <code>dedicated</code>.</p> <p>After
19580          * you modify the tenancy of the VPC, any new instances that you launch into the
19581          * VPC have a tenancy of <code>default</code>, unless you specify otherwise during
19582          * launch. The tenancy of any existing instances in the VPC is not affected.</p>
19583          * <p>For more information, see <a
19584          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-instance.html">Dedicated
19585          * Instances</a> in the <i>Amazon Elastic Compute Cloud User
19586          * Guide</i>.</p><p><h3>See Also:</h3>   <a
19587          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyVpcTenancy">AWS
19588          * API Reference</a></p>
19589          *
19590          * returns a future to the operation so that it can be executed in parallel to other requests.
19591          */
19592         virtual Model::ModifyVpcTenancyOutcomeCallable ModifyVpcTenancyCallable(const Model::ModifyVpcTenancyRequest& request) const;
19593 
19594         /**
19595          * <p>Modifies the instance tenancy attribute of the specified VPC. You can change
19596          * the instance tenancy attribute of a VPC to <code>default</code> only. You cannot
19597          * change the instance tenancy attribute to <code>dedicated</code>.</p> <p>After
19598          * you modify the tenancy of the VPC, any new instances that you launch into the
19599          * VPC have a tenancy of <code>default</code>, unless you specify otherwise during
19600          * launch. The tenancy of any existing instances in the VPC is not affected.</p>
19601          * <p>For more information, see <a
19602          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-instance.html">Dedicated
19603          * Instances</a> in the <i>Amazon Elastic Compute Cloud User
19604          * Guide</i>.</p><p><h3>See Also:</h3>   <a
19605          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyVpcTenancy">AWS
19606          * API Reference</a></p>
19607          *
19608          * Queues the request into a thread executor and triggers associated callback when operation has finished.
19609          */
19610         virtual void ModifyVpcTenancyAsync(const Model::ModifyVpcTenancyRequest& request, const ModifyVpcTenancyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
19611 
19612         /**
19613          * <p>Modifies the customer gateway or the target gateway of an Amazon Web Services
19614          * Site-to-Site VPN connection. To modify the target gateway, the following
19615          * migration options are available:</p> <ul> <li> <p>An existing virtual private
19616          * gateway to a new virtual private gateway</p> </li> <li> <p>An existing virtual
19617          * private gateway to a transit gateway</p> </li> <li> <p>An existing transit
19618          * gateway to a new transit gateway</p> </li> <li> <p>An existing transit gateway
19619          * to a virtual private gateway</p> </li> </ul> <p>Before you perform the migration
19620          * to the new gateway, you must configure the new gateway. Use
19621          * <a>CreateVpnGateway</a> to create a virtual private gateway, or
19622          * <a>CreateTransitGateway</a> to create a transit gateway.</p> <p>This step is
19623          * required when you migrate from a virtual private gateway with static routes to a
19624          * transit gateway. </p> <p>You must delete the static routes before you migrate to
19625          * the new gateway.</p> <p>Keep a copy of the static route before you delete it.
19626          * You will need to add back these routes to the transit gateway after the VPN
19627          * connection migration is complete.</p> <p>After you migrate to the new gateway,
19628          * you might need to modify your VPC route table. Use <a>CreateRoute</a> and
19629          * <a>DeleteRoute</a> to make the changes described in <a
19630          * href="https://docs.aws.amazon.com/vpn/latest/s2svpn/modify-vpn-target.html#step-update-routing">Update
19631          * VPC route tables</a> in the <i>Amazon Web Services Site-to-Site VPN User
19632          * Guide</i>.</p> <p>When the new gateway is a transit gateway, modify the transit
19633          * gateway route table to allow traffic between the VPC and the Amazon Web Services
19634          * Site-to-Site VPN connection. Use <a>CreateTransitGatewayRoute</a> to add the
19635          * routes.</p> <p> If you deleted VPN static routes, you must add the static routes
19636          * to the transit gateway route table.</p> <p>After you perform this operation, the
19637          * VPN endpoint's IP addresses on the Amazon Web Services side and the tunnel
19638          * options remain intact. Your Amazon Web Services Site-to-Site VPN connection will
19639          * be temporarily unavailable for a brief period while we provision the new
19640          * endpoints.</p><p><h3>See Also:</h3>   <a
19641          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyVpnConnection">AWS
19642          * API Reference</a></p>
19643          */
19644         virtual Model::ModifyVpnConnectionOutcome ModifyVpnConnection(const Model::ModifyVpnConnectionRequest& request) const;
19645 
19646         /**
19647          * <p>Modifies the customer gateway or the target gateway of an Amazon Web Services
19648          * Site-to-Site VPN connection. To modify the target gateway, the following
19649          * migration options are available:</p> <ul> <li> <p>An existing virtual private
19650          * gateway to a new virtual private gateway</p> </li> <li> <p>An existing virtual
19651          * private gateway to a transit gateway</p> </li> <li> <p>An existing transit
19652          * gateway to a new transit gateway</p> </li> <li> <p>An existing transit gateway
19653          * to a virtual private gateway</p> </li> </ul> <p>Before you perform the migration
19654          * to the new gateway, you must configure the new gateway. Use
19655          * <a>CreateVpnGateway</a> to create a virtual private gateway, or
19656          * <a>CreateTransitGateway</a> to create a transit gateway.</p> <p>This step is
19657          * required when you migrate from a virtual private gateway with static routes to a
19658          * transit gateway. </p> <p>You must delete the static routes before you migrate to
19659          * the new gateway.</p> <p>Keep a copy of the static route before you delete it.
19660          * You will need to add back these routes to the transit gateway after the VPN
19661          * connection migration is complete.</p> <p>After you migrate to the new gateway,
19662          * you might need to modify your VPC route table. Use <a>CreateRoute</a> and
19663          * <a>DeleteRoute</a> to make the changes described in <a
19664          * href="https://docs.aws.amazon.com/vpn/latest/s2svpn/modify-vpn-target.html#step-update-routing">Update
19665          * VPC route tables</a> in the <i>Amazon Web Services Site-to-Site VPN User
19666          * Guide</i>.</p> <p>When the new gateway is a transit gateway, modify the transit
19667          * gateway route table to allow traffic between the VPC and the Amazon Web Services
19668          * Site-to-Site VPN connection. Use <a>CreateTransitGatewayRoute</a> to add the
19669          * routes.</p> <p> If you deleted VPN static routes, you must add the static routes
19670          * to the transit gateway route table.</p> <p>After you perform this operation, the
19671          * VPN endpoint's IP addresses on the Amazon Web Services side and the tunnel
19672          * options remain intact. Your Amazon Web Services Site-to-Site VPN connection will
19673          * be temporarily unavailable for a brief period while we provision the new
19674          * endpoints.</p><p><h3>See Also:</h3>   <a
19675          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyVpnConnection">AWS
19676          * API Reference</a></p>
19677          *
19678          * returns a future to the operation so that it can be executed in parallel to other requests.
19679          */
19680         virtual Model::ModifyVpnConnectionOutcomeCallable ModifyVpnConnectionCallable(const Model::ModifyVpnConnectionRequest& request) const;
19681 
19682         /**
19683          * <p>Modifies the customer gateway or the target gateway of an Amazon Web Services
19684          * Site-to-Site VPN connection. To modify the target gateway, the following
19685          * migration options are available:</p> <ul> <li> <p>An existing virtual private
19686          * gateway to a new virtual private gateway</p> </li> <li> <p>An existing virtual
19687          * private gateway to a transit gateway</p> </li> <li> <p>An existing transit
19688          * gateway to a new transit gateway</p> </li> <li> <p>An existing transit gateway
19689          * to a virtual private gateway</p> </li> </ul> <p>Before you perform the migration
19690          * to the new gateway, you must configure the new gateway. Use
19691          * <a>CreateVpnGateway</a> to create a virtual private gateway, or
19692          * <a>CreateTransitGateway</a> to create a transit gateway.</p> <p>This step is
19693          * required when you migrate from a virtual private gateway with static routes to a
19694          * transit gateway. </p> <p>You must delete the static routes before you migrate to
19695          * the new gateway.</p> <p>Keep a copy of the static route before you delete it.
19696          * You will need to add back these routes to the transit gateway after the VPN
19697          * connection migration is complete.</p> <p>After you migrate to the new gateway,
19698          * you might need to modify your VPC route table. Use <a>CreateRoute</a> and
19699          * <a>DeleteRoute</a> to make the changes described in <a
19700          * href="https://docs.aws.amazon.com/vpn/latest/s2svpn/modify-vpn-target.html#step-update-routing">Update
19701          * VPC route tables</a> in the <i>Amazon Web Services Site-to-Site VPN User
19702          * Guide</i>.</p> <p>When the new gateway is a transit gateway, modify the transit
19703          * gateway route table to allow traffic between the VPC and the Amazon Web Services
19704          * Site-to-Site VPN connection. Use <a>CreateTransitGatewayRoute</a> to add the
19705          * routes.</p> <p> If you deleted VPN static routes, you must add the static routes
19706          * to the transit gateway route table.</p> <p>After you perform this operation, the
19707          * VPN endpoint's IP addresses on the Amazon Web Services side and the tunnel
19708          * options remain intact. Your Amazon Web Services Site-to-Site VPN connection will
19709          * be temporarily unavailable for a brief period while we provision the new
19710          * endpoints.</p><p><h3>See Also:</h3>   <a
19711          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyVpnConnection">AWS
19712          * API Reference</a></p>
19713          *
19714          * Queues the request into a thread executor and triggers associated callback when operation has finished.
19715          */
19716         virtual void ModifyVpnConnectionAsync(const Model::ModifyVpnConnectionRequest& request, const ModifyVpnConnectionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
19717 
19718         /**
19719          * <p>Modifies the connection options for your Site-to-Site VPN connection.</p>
19720          * <p>When you modify the VPN connection options, the VPN endpoint IP addresses on
19721          * the Amazon Web Services side do not change, and the tunnel options do not
19722          * change. Your VPN connection will be temporarily unavailable for a brief period
19723          * while the VPN connection is updated.</p><p><h3>See Also:</h3>   <a
19724          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyVpnConnectionOptions">AWS
19725          * API Reference</a></p>
19726          */
19727         virtual Model::ModifyVpnConnectionOptionsOutcome ModifyVpnConnectionOptions(const Model::ModifyVpnConnectionOptionsRequest& request) const;
19728 
19729         /**
19730          * <p>Modifies the connection options for your Site-to-Site VPN connection.</p>
19731          * <p>When you modify the VPN connection options, the VPN endpoint IP addresses on
19732          * the Amazon Web Services side do not change, and the tunnel options do not
19733          * change. Your VPN connection will be temporarily unavailable for a brief period
19734          * while the VPN connection is updated.</p><p><h3>See Also:</h3>   <a
19735          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyVpnConnectionOptions">AWS
19736          * API Reference</a></p>
19737          *
19738          * returns a future to the operation so that it can be executed in parallel to other requests.
19739          */
19740         virtual Model::ModifyVpnConnectionOptionsOutcomeCallable ModifyVpnConnectionOptionsCallable(const Model::ModifyVpnConnectionOptionsRequest& request) const;
19741 
19742         /**
19743          * <p>Modifies the connection options for your Site-to-Site VPN connection.</p>
19744          * <p>When you modify the VPN connection options, the VPN endpoint IP addresses on
19745          * the Amazon Web Services side do not change, and the tunnel options do not
19746          * change. Your VPN connection will be temporarily unavailable for a brief period
19747          * while the VPN connection is updated.</p><p><h3>See Also:</h3>   <a
19748          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyVpnConnectionOptions">AWS
19749          * API Reference</a></p>
19750          *
19751          * Queues the request into a thread executor and triggers associated callback when operation has finished.
19752          */
19753         virtual void ModifyVpnConnectionOptionsAsync(const Model::ModifyVpnConnectionOptionsRequest& request, const ModifyVpnConnectionOptionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
19754 
19755         /**
19756          * <p>Modifies the VPN tunnel endpoint certificate.</p><p><h3>See Also:</h3>   <a
19757          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyVpnTunnelCertificate">AWS
19758          * API Reference</a></p>
19759          */
19760         virtual Model::ModifyVpnTunnelCertificateOutcome ModifyVpnTunnelCertificate(const Model::ModifyVpnTunnelCertificateRequest& request) const;
19761 
19762         /**
19763          * <p>Modifies the VPN tunnel endpoint certificate.</p><p><h3>See Also:</h3>   <a
19764          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyVpnTunnelCertificate">AWS
19765          * API Reference</a></p>
19766          *
19767          * returns a future to the operation so that it can be executed in parallel to other requests.
19768          */
19769         virtual Model::ModifyVpnTunnelCertificateOutcomeCallable ModifyVpnTunnelCertificateCallable(const Model::ModifyVpnTunnelCertificateRequest& request) const;
19770 
19771         /**
19772          * <p>Modifies the VPN tunnel endpoint certificate.</p><p><h3>See Also:</h3>   <a
19773          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyVpnTunnelCertificate">AWS
19774          * API Reference</a></p>
19775          *
19776          * Queues the request into a thread executor and triggers associated callback when operation has finished.
19777          */
19778         virtual void ModifyVpnTunnelCertificateAsync(const Model::ModifyVpnTunnelCertificateRequest& request, const ModifyVpnTunnelCertificateResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
19779 
19780         /**
19781          * <p>Modifies the options for a VPN tunnel in an Amazon Web Services Site-to-Site
19782          * VPN connection. You can modify multiple options for a tunnel in a single
19783          * request, but you can only modify one tunnel at a time. For more information, see
19784          * <a
19785          * href="https://docs.aws.amazon.com/vpn/latest/s2svpn/VPNTunnels.html">Site-to-Site
19786          * VPN tunnel options for your Site-to-Site VPN connection</a> in the <i>Amazon Web
19787          * Services Site-to-Site VPN User Guide</i>.</p><p><h3>See Also:</h3>   <a
19788          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyVpnTunnelOptions">AWS
19789          * API Reference</a></p>
19790          */
19791         virtual Model::ModifyVpnTunnelOptionsOutcome ModifyVpnTunnelOptions(const Model::ModifyVpnTunnelOptionsRequest& request) const;
19792 
19793         /**
19794          * <p>Modifies the options for a VPN tunnel in an Amazon Web Services Site-to-Site
19795          * VPN connection. You can modify multiple options for a tunnel in a single
19796          * request, but you can only modify one tunnel at a time. For more information, see
19797          * <a
19798          * href="https://docs.aws.amazon.com/vpn/latest/s2svpn/VPNTunnels.html">Site-to-Site
19799          * VPN tunnel options for your Site-to-Site VPN connection</a> in the <i>Amazon Web
19800          * Services Site-to-Site VPN User Guide</i>.</p><p><h3>See Also:</h3>   <a
19801          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyVpnTunnelOptions">AWS
19802          * API Reference</a></p>
19803          *
19804          * returns a future to the operation so that it can be executed in parallel to other requests.
19805          */
19806         virtual Model::ModifyVpnTunnelOptionsOutcomeCallable ModifyVpnTunnelOptionsCallable(const Model::ModifyVpnTunnelOptionsRequest& request) const;
19807 
19808         /**
19809          * <p>Modifies the options for a VPN tunnel in an Amazon Web Services Site-to-Site
19810          * VPN connection. You can modify multiple options for a tunnel in a single
19811          * request, but you can only modify one tunnel at a time. For more information, see
19812          * <a
19813          * href="https://docs.aws.amazon.com/vpn/latest/s2svpn/VPNTunnels.html">Site-to-Site
19814          * VPN tunnel options for your Site-to-Site VPN connection</a> in the <i>Amazon Web
19815          * Services Site-to-Site VPN User Guide</i>.</p><p><h3>See Also:</h3>   <a
19816          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyVpnTunnelOptions">AWS
19817          * API Reference</a></p>
19818          *
19819          * Queues the request into a thread executor and triggers associated callback when operation has finished.
19820          */
19821         virtual void ModifyVpnTunnelOptionsAsync(const Model::ModifyVpnTunnelOptionsRequest& request, const ModifyVpnTunnelOptionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
19822 
19823         /**
19824          * <p>Enables detailed monitoring for a running instance. Otherwise, basic
19825          * monitoring is enabled. For more information, see <a
19826          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-cloudwatch.html">Monitoring
19827          * your instances and volumes</a> in the <i>Amazon EC2 User Guide</i>.</p> <p>To
19828          * disable detailed monitoring, see .</p><p><h3>See Also:</h3>   <a
19829          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/MonitorInstances">AWS
19830          * API Reference</a></p>
19831          */
19832         virtual Model::MonitorInstancesOutcome MonitorInstances(const Model::MonitorInstancesRequest& request) const;
19833 
19834         /**
19835          * <p>Enables detailed monitoring for a running instance. Otherwise, basic
19836          * monitoring is enabled. For more information, see <a
19837          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-cloudwatch.html">Monitoring
19838          * your instances and volumes</a> in the <i>Amazon EC2 User Guide</i>.</p> <p>To
19839          * disable detailed monitoring, see .</p><p><h3>See Also:</h3>   <a
19840          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/MonitorInstances">AWS
19841          * API Reference</a></p>
19842          *
19843          * returns a future to the operation so that it can be executed in parallel to other requests.
19844          */
19845         virtual Model::MonitorInstancesOutcomeCallable MonitorInstancesCallable(const Model::MonitorInstancesRequest& request) const;
19846 
19847         /**
19848          * <p>Enables detailed monitoring for a running instance. Otherwise, basic
19849          * monitoring is enabled. For more information, see <a
19850          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-cloudwatch.html">Monitoring
19851          * your instances and volumes</a> in the <i>Amazon EC2 User Guide</i>.</p> <p>To
19852          * disable detailed monitoring, see .</p><p><h3>See Also:</h3>   <a
19853          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/MonitorInstances">AWS
19854          * API Reference</a></p>
19855          *
19856          * Queues the request into a thread executor and triggers associated callback when operation has finished.
19857          */
19858         virtual void MonitorInstancesAsync(const Model::MonitorInstancesRequest& request, const MonitorInstancesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
19859 
19860         /**
19861          * <p>Moves an Elastic IP address from the EC2-Classic platform to the EC2-VPC
19862          * platform. The Elastic IP address must be allocated to your account for more than
19863          * 24 hours, and it must not be associated with an instance. After the Elastic IP
19864          * address is moved, it is no longer available for use in the EC2-Classic platform,
19865          * unless you move it back using the <a>RestoreAddressToClassic</a> request. You
19866          * cannot move an Elastic IP address that was originally allocated for use in the
19867          * EC2-VPC platform to the EC2-Classic platform. </p><p><h3>See Also:</h3>   <a
19868          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/MoveAddressToVpc">AWS
19869          * API Reference</a></p>
19870          */
19871         virtual Model::MoveAddressToVpcOutcome MoveAddressToVpc(const Model::MoveAddressToVpcRequest& request) const;
19872 
19873         /**
19874          * <p>Moves an Elastic IP address from the EC2-Classic platform to the EC2-VPC
19875          * platform. The Elastic IP address must be allocated to your account for more than
19876          * 24 hours, and it must not be associated with an instance. After the Elastic IP
19877          * address is moved, it is no longer available for use in the EC2-Classic platform,
19878          * unless you move it back using the <a>RestoreAddressToClassic</a> request. You
19879          * cannot move an Elastic IP address that was originally allocated for use in the
19880          * EC2-VPC platform to the EC2-Classic platform. </p><p><h3>See Also:</h3>   <a
19881          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/MoveAddressToVpc">AWS
19882          * API Reference</a></p>
19883          *
19884          * returns a future to the operation so that it can be executed in parallel to other requests.
19885          */
19886         virtual Model::MoveAddressToVpcOutcomeCallable MoveAddressToVpcCallable(const Model::MoveAddressToVpcRequest& request) const;
19887 
19888         /**
19889          * <p>Moves an Elastic IP address from the EC2-Classic platform to the EC2-VPC
19890          * platform. The Elastic IP address must be allocated to your account for more than
19891          * 24 hours, and it must not be associated with an instance. After the Elastic IP
19892          * address is moved, it is no longer available for use in the EC2-Classic platform,
19893          * unless you move it back using the <a>RestoreAddressToClassic</a> request. You
19894          * cannot move an Elastic IP address that was originally allocated for use in the
19895          * EC2-VPC platform to the EC2-Classic platform. </p><p><h3>See Also:</h3>   <a
19896          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/MoveAddressToVpc">AWS
19897          * API Reference</a></p>
19898          *
19899          * Queues the request into a thread executor and triggers associated callback when operation has finished.
19900          */
19901         virtual void MoveAddressToVpcAsync(const Model::MoveAddressToVpcRequest& request, const MoveAddressToVpcResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
19902 
19903         /**
19904          * <p>Provisions an IPv4 or IPv6 address range for use with your Amazon Web
19905          * Services resources through bring your own IP addresses (BYOIP) and creates a
19906          * corresponding address pool. After the address range is provisioned, it is ready
19907          * to be advertised using <a>AdvertiseByoipCidr</a>.</p> <p>Amazon Web Services
19908          * verifies that you own the address range and are authorized to advertise it. You
19909          * must ensure that the address range is registered to you and that you created an
19910          * RPKI ROA to authorize Amazon ASNs 16509 and 14618 to advertise the address
19911          * range. For more information, see <a
19912          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-byoip.html">Bring
19913          * your own IP addresses (BYOIP)</a> in the <i>Amazon Elastic Compute Cloud User
19914          * Guide</i>.</p> <p>Provisioning an address range is an asynchronous operation, so
19915          * the call returns immediately, but the address range is not ready to use until
19916          * its status changes from <code>pending-provision</code> to
19917          * <code>provisioned</code>. To monitor the status of an address range, use
19918          * <a>DescribeByoipCidrs</a>. To allocate an Elastic IP address from your IPv4
19919          * address pool, use <a>AllocateAddress</a> with either the specific address from
19920          * the address pool or the ID of the address pool.</p><p><h3>See Also:</h3>   <a
19921          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ProvisionByoipCidr">AWS
19922          * API Reference</a></p>
19923          */
19924         virtual Model::ProvisionByoipCidrOutcome ProvisionByoipCidr(const Model::ProvisionByoipCidrRequest& request) const;
19925 
19926         /**
19927          * <p>Provisions an IPv4 or IPv6 address range for use with your Amazon Web
19928          * Services resources through bring your own IP addresses (BYOIP) and creates a
19929          * corresponding address pool. After the address range is provisioned, it is ready
19930          * to be advertised using <a>AdvertiseByoipCidr</a>.</p> <p>Amazon Web Services
19931          * verifies that you own the address range and are authorized to advertise it. You
19932          * must ensure that the address range is registered to you and that you created an
19933          * RPKI ROA to authorize Amazon ASNs 16509 and 14618 to advertise the address
19934          * range. For more information, see <a
19935          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-byoip.html">Bring
19936          * your own IP addresses (BYOIP)</a> in the <i>Amazon Elastic Compute Cloud User
19937          * Guide</i>.</p> <p>Provisioning an address range is an asynchronous operation, so
19938          * the call returns immediately, but the address range is not ready to use until
19939          * its status changes from <code>pending-provision</code> to
19940          * <code>provisioned</code>. To monitor the status of an address range, use
19941          * <a>DescribeByoipCidrs</a>. To allocate an Elastic IP address from your IPv4
19942          * address pool, use <a>AllocateAddress</a> with either the specific address from
19943          * the address pool or the ID of the address pool.</p><p><h3>See Also:</h3>   <a
19944          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ProvisionByoipCidr">AWS
19945          * API Reference</a></p>
19946          *
19947          * returns a future to the operation so that it can be executed in parallel to other requests.
19948          */
19949         virtual Model::ProvisionByoipCidrOutcomeCallable ProvisionByoipCidrCallable(const Model::ProvisionByoipCidrRequest& request) const;
19950 
19951         /**
19952          * <p>Provisions an IPv4 or IPv6 address range for use with your Amazon Web
19953          * Services resources through bring your own IP addresses (BYOIP) and creates a
19954          * corresponding address pool. After the address range is provisioned, it is ready
19955          * to be advertised using <a>AdvertiseByoipCidr</a>.</p> <p>Amazon Web Services
19956          * verifies that you own the address range and are authorized to advertise it. You
19957          * must ensure that the address range is registered to you and that you created an
19958          * RPKI ROA to authorize Amazon ASNs 16509 and 14618 to advertise the address
19959          * range. For more information, see <a
19960          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-byoip.html">Bring
19961          * your own IP addresses (BYOIP)</a> in the <i>Amazon Elastic Compute Cloud User
19962          * Guide</i>.</p> <p>Provisioning an address range is an asynchronous operation, so
19963          * the call returns immediately, but the address range is not ready to use until
19964          * its status changes from <code>pending-provision</code> to
19965          * <code>provisioned</code>. To monitor the status of an address range, use
19966          * <a>DescribeByoipCidrs</a>. To allocate an Elastic IP address from your IPv4
19967          * address pool, use <a>AllocateAddress</a> with either the specific address from
19968          * the address pool or the ID of the address pool.</p><p><h3>See Also:</h3>   <a
19969          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ProvisionByoipCidr">AWS
19970          * API Reference</a></p>
19971          *
19972          * Queues the request into a thread executor and triggers associated callback when operation has finished.
19973          */
19974         virtual void ProvisionByoipCidrAsync(const Model::ProvisionByoipCidrRequest& request, const ProvisionByoipCidrResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
19975 
19976         /**
19977          * <p>Purchase a reservation with configurations that match those of your Dedicated
19978          * Host. You must have active Dedicated Hosts in your account before you purchase a
19979          * reservation. This action results in the specified reservation being purchased
19980          * and charged to your account.</p><p><h3>See Also:</h3>   <a
19981          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/PurchaseHostReservation">AWS
19982          * API Reference</a></p>
19983          */
19984         virtual Model::PurchaseHostReservationOutcome PurchaseHostReservation(const Model::PurchaseHostReservationRequest& request) const;
19985 
19986         /**
19987          * <p>Purchase a reservation with configurations that match those of your Dedicated
19988          * Host. You must have active Dedicated Hosts in your account before you purchase a
19989          * reservation. This action results in the specified reservation being purchased
19990          * and charged to your account.</p><p><h3>See Also:</h3>   <a
19991          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/PurchaseHostReservation">AWS
19992          * API Reference</a></p>
19993          *
19994          * returns a future to the operation so that it can be executed in parallel to other requests.
19995          */
19996         virtual Model::PurchaseHostReservationOutcomeCallable PurchaseHostReservationCallable(const Model::PurchaseHostReservationRequest& request) const;
19997 
19998         /**
19999          * <p>Purchase a reservation with configurations that match those of your Dedicated
20000          * Host. You must have active Dedicated Hosts in your account before you purchase a
20001          * reservation. This action results in the specified reservation being purchased
20002          * and charged to your account.</p><p><h3>See Also:</h3>   <a
20003          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/PurchaseHostReservation">AWS
20004          * API Reference</a></p>
20005          *
20006          * Queues the request into a thread executor and triggers associated callback when operation has finished.
20007          */
20008         virtual void PurchaseHostReservationAsync(const Model::PurchaseHostReservationRequest& request, const PurchaseHostReservationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
20009 
20010         /**
20011          * <p>Purchases a Reserved Instance for use with your account. With Reserved
20012          * Instances, you pay a lower hourly rate compared to On-Demand instance
20013          * pricing.</p> <p>Use <a>DescribeReservedInstancesOfferings</a> to get a list of
20014          * Reserved Instance offerings that match your specifications. After you've
20015          * purchased a Reserved Instance, you can check for your new Reserved Instance with
20016          * <a>DescribeReservedInstances</a>.</p> <p>To queue a purchase for a future date
20017          * and time, specify a purchase time. If you do not specify a purchase time, the
20018          * default is the current time.</p> <p>For more information, see <a
20019          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts-on-demand-reserved-instances.html">Reserved
20020          * Instances</a> and <a
20021          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-market-general.html">Reserved
20022          * Instance Marketplace</a> in the <i>Amazon EC2 User Guide</i>.</p><p><h3>See
20023          * Also:</h3>   <a
20024          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/PurchaseReservedInstancesOffering">AWS
20025          * API Reference</a></p>
20026          */
20027         virtual Model::PurchaseReservedInstancesOfferingOutcome PurchaseReservedInstancesOffering(const Model::PurchaseReservedInstancesOfferingRequest& request) const;
20028 
20029         /**
20030          * <p>Purchases a Reserved Instance for use with your account. With Reserved
20031          * Instances, you pay a lower hourly rate compared to On-Demand instance
20032          * pricing.</p> <p>Use <a>DescribeReservedInstancesOfferings</a> to get a list of
20033          * Reserved Instance offerings that match your specifications. After you've
20034          * purchased a Reserved Instance, you can check for your new Reserved Instance with
20035          * <a>DescribeReservedInstances</a>.</p> <p>To queue a purchase for a future date
20036          * and time, specify a purchase time. If you do not specify a purchase time, the
20037          * default is the current time.</p> <p>For more information, see <a
20038          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts-on-demand-reserved-instances.html">Reserved
20039          * Instances</a> and <a
20040          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-market-general.html">Reserved
20041          * Instance Marketplace</a> in the <i>Amazon EC2 User Guide</i>.</p><p><h3>See
20042          * Also:</h3>   <a
20043          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/PurchaseReservedInstancesOffering">AWS
20044          * API Reference</a></p>
20045          *
20046          * returns a future to the operation so that it can be executed in parallel to other requests.
20047          */
20048         virtual Model::PurchaseReservedInstancesOfferingOutcomeCallable PurchaseReservedInstancesOfferingCallable(const Model::PurchaseReservedInstancesOfferingRequest& request) const;
20049 
20050         /**
20051          * <p>Purchases a Reserved Instance for use with your account. With Reserved
20052          * Instances, you pay a lower hourly rate compared to On-Demand instance
20053          * pricing.</p> <p>Use <a>DescribeReservedInstancesOfferings</a> to get a list of
20054          * Reserved Instance offerings that match your specifications. After you've
20055          * purchased a Reserved Instance, you can check for your new Reserved Instance with
20056          * <a>DescribeReservedInstances</a>.</p> <p>To queue a purchase for a future date
20057          * and time, specify a purchase time. If you do not specify a purchase time, the
20058          * default is the current time.</p> <p>For more information, see <a
20059          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts-on-demand-reserved-instances.html">Reserved
20060          * Instances</a> and <a
20061          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-market-general.html">Reserved
20062          * Instance Marketplace</a> in the <i>Amazon EC2 User Guide</i>.</p><p><h3>See
20063          * Also:</h3>   <a
20064          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/PurchaseReservedInstancesOffering">AWS
20065          * API Reference</a></p>
20066          *
20067          * Queues the request into a thread executor and triggers associated callback when operation has finished.
20068          */
20069         virtual void PurchaseReservedInstancesOfferingAsync(const Model::PurchaseReservedInstancesOfferingRequest& request, const PurchaseReservedInstancesOfferingResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
20070 
20071         /**
20072          * <p>Purchases the Scheduled Instances with the specified schedule.</p>
20073          * <p>Scheduled Instances enable you to purchase Amazon EC2 compute capacity by the
20074          * hour for a one-year term. Before you can purchase a Scheduled Instance, you must
20075          * call <a>DescribeScheduledInstanceAvailability</a> to check for available
20076          * schedules and obtain a purchase token. After you purchase a Scheduled Instance,
20077          * you must call <a>RunScheduledInstances</a> during each scheduled time
20078          * period.</p> <p>After you purchase a Scheduled Instance, you can't cancel,
20079          * modify, or resell your purchase.</p><p><h3>See Also:</h3>   <a
20080          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/PurchaseScheduledInstances">AWS
20081          * API Reference</a></p>
20082          */
20083         virtual Model::PurchaseScheduledInstancesOutcome PurchaseScheduledInstances(const Model::PurchaseScheduledInstancesRequest& request) const;
20084 
20085         /**
20086          * <p>Purchases the Scheduled Instances with the specified schedule.</p>
20087          * <p>Scheduled Instances enable you to purchase Amazon EC2 compute capacity by the
20088          * hour for a one-year term. Before you can purchase a Scheduled Instance, you must
20089          * call <a>DescribeScheduledInstanceAvailability</a> to check for available
20090          * schedules and obtain a purchase token. After you purchase a Scheduled Instance,
20091          * you must call <a>RunScheduledInstances</a> during each scheduled time
20092          * period.</p> <p>After you purchase a Scheduled Instance, you can't cancel,
20093          * modify, or resell your purchase.</p><p><h3>See Also:</h3>   <a
20094          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/PurchaseScheduledInstances">AWS
20095          * API Reference</a></p>
20096          *
20097          * returns a future to the operation so that it can be executed in parallel to other requests.
20098          */
20099         virtual Model::PurchaseScheduledInstancesOutcomeCallable PurchaseScheduledInstancesCallable(const Model::PurchaseScheduledInstancesRequest& request) const;
20100 
20101         /**
20102          * <p>Purchases the Scheduled Instances with the specified schedule.</p>
20103          * <p>Scheduled Instances enable you to purchase Amazon EC2 compute capacity by the
20104          * hour for a one-year term. Before you can purchase a Scheduled Instance, you must
20105          * call <a>DescribeScheduledInstanceAvailability</a> to check for available
20106          * schedules and obtain a purchase token. After you purchase a Scheduled Instance,
20107          * you must call <a>RunScheduledInstances</a> during each scheduled time
20108          * period.</p> <p>After you purchase a Scheduled Instance, you can't cancel,
20109          * modify, or resell your purchase.</p><p><h3>See Also:</h3>   <a
20110          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/PurchaseScheduledInstances">AWS
20111          * API Reference</a></p>
20112          *
20113          * Queues the request into a thread executor and triggers associated callback when operation has finished.
20114          */
20115         virtual void PurchaseScheduledInstancesAsync(const Model::PurchaseScheduledInstancesRequest& request, const PurchaseScheduledInstancesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
20116 
20117         /**
20118          * <p>Requests a reboot of the specified instances. This operation is asynchronous;
20119          * it only queues a request to reboot the specified instances. The operation
20120          * succeeds if the instances are valid and belong to you. Requests to reboot
20121          * terminated instances are ignored.</p> <p>If an instance does not cleanly shut
20122          * down within a few minutes, Amazon EC2 performs a hard reboot.</p> <p>For more
20123          * information about troubleshooting, see <a
20124          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-console.html">Getting
20125          * console output and rebooting instances</a> in the <i>Amazon EC2 User
20126          * Guide</i>.</p><p><h3>See Also:</h3>   <a
20127          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RebootInstances">AWS
20128          * API Reference</a></p>
20129          */
20130         virtual Model::RebootInstancesOutcome RebootInstances(const Model::RebootInstancesRequest& request) const;
20131 
20132         /**
20133          * <p>Requests a reboot of the specified instances. This operation is asynchronous;
20134          * it only queues a request to reboot the specified instances. The operation
20135          * succeeds if the instances are valid and belong to you. Requests to reboot
20136          * terminated instances are ignored.</p> <p>If an instance does not cleanly shut
20137          * down within a few minutes, Amazon EC2 performs a hard reboot.</p> <p>For more
20138          * information about troubleshooting, see <a
20139          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-console.html">Getting
20140          * console output and rebooting instances</a> in the <i>Amazon EC2 User
20141          * Guide</i>.</p><p><h3>See Also:</h3>   <a
20142          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RebootInstances">AWS
20143          * API Reference</a></p>
20144          *
20145          * returns a future to the operation so that it can be executed in parallel to other requests.
20146          */
20147         virtual Model::RebootInstancesOutcomeCallable RebootInstancesCallable(const Model::RebootInstancesRequest& request) const;
20148 
20149         /**
20150          * <p>Requests a reboot of the specified instances. This operation is asynchronous;
20151          * it only queues a request to reboot the specified instances. The operation
20152          * succeeds if the instances are valid and belong to you. Requests to reboot
20153          * terminated instances are ignored.</p> <p>If an instance does not cleanly shut
20154          * down within a few minutes, Amazon EC2 performs a hard reboot.</p> <p>For more
20155          * information about troubleshooting, see <a
20156          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-console.html">Getting
20157          * console output and rebooting instances</a> in the <i>Amazon EC2 User
20158          * Guide</i>.</p><p><h3>See Also:</h3>   <a
20159          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RebootInstances">AWS
20160          * API Reference</a></p>
20161          *
20162          * Queues the request into a thread executor and triggers associated callback when operation has finished.
20163          */
20164         virtual void RebootInstancesAsync(const Model::RebootInstancesRequest& request, const RebootInstancesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
20165 
20166         /**
20167          * <p>Registers an AMI. When you're creating an AMI, this is the final step you
20168          * must complete before you can launch an instance from the AMI. For more
20169          * information about creating AMIs, see <a
20170          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami.html">Creating
20171          * your own AMIs</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>
20172          *  <p>For Amazon EBS-backed instances, <a>CreateImage</a> creates and
20173          * registers the AMI in a single request, so you don't have to register the AMI
20174          * yourself.</p>  <p>If needed, you can deregister an AMI at any time. Any
20175          * modifications you make to an AMI backed by an instance store volume invalidates
20176          * its registration. If you make changes to an image, deregister the previous image
20177          * and register the new image.</p> <p> <b>Register a snapshot of a root device
20178          * volume</b> </p> <p>You can use <code>RegisterImage</code> to create an Amazon
20179          * EBS-backed Linux AMI from a snapshot of a root device volume. You specify the
20180          * snapshot using a block device mapping. You can't set the encryption state of the
20181          * volume using the block device mapping. If the snapshot is encrypted, or
20182          * encryption by default is enabled, the root volume of an instance launched from
20183          * the AMI is encrypted.</p> <p>For more information, see <a
20184          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-ebs.html#creating-launching-ami-from-snapshot">Create
20185          * a Linux AMI from a snapshot</a> and <a
20186          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AMIEncryption.html">Use
20187          * encryption with Amazon EBS-backed AMIs</a> in the <i>Amazon Elastic Compute
20188          * Cloud User Guide</i>.</p> <p> <b>Amazon Web Services Marketplace product
20189          * codes</b> </p> <p>If any snapshots have Amazon Web Services Marketplace product
20190          * codes, they are copied to the new AMI.</p> <p>Windows and some Linux
20191          * distributions, such as Red Hat Enterprise Linux (RHEL) and SUSE Linux Enterprise
20192          * Server (SLES), use the Amazon EC2 billing product code associated with an AMI to
20193          * verify the subscription status for package updates. To create a new AMI for
20194          * operating systems that require a billing product code, instead of registering
20195          * the AMI, do the following to preserve the billing product code association:</p>
20196          * <ol> <li> <p>Launch an instance from an existing AMI with that billing product
20197          * code.</p> </li> <li> <p>Customize the instance.</p> </li> <li> <p>Create an AMI
20198          * from the instance using <a>CreateImage</a>.</p> </li> </ol> <p>If you purchase a
20199          * Reserved Instance to apply to an On-Demand Instance that was launched from an
20200          * AMI with a billing product code, make sure that the Reserved Instance has the
20201          * matching billing product code. If you purchase a Reserved Instance without the
20202          * matching billing product code, the Reserved Instance will not be applied to the
20203          * On-Demand Instance. For information about how to obtain the platform details and
20204          * billing information of an AMI, see <a
20205          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-billing-info.html">Understanding
20206          * AMI billing</a> in the <i>Amazon Elastic Compute Cloud User
20207          * Guide</i>.</p><p><h3>See Also:</h3>   <a
20208          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RegisterImage">AWS
20209          * API Reference</a></p>
20210          */
20211         virtual Model::RegisterImageOutcome RegisterImage(const Model::RegisterImageRequest& request) const;
20212 
20213         /**
20214          * <p>Registers an AMI. When you're creating an AMI, this is the final step you
20215          * must complete before you can launch an instance from the AMI. For more
20216          * information about creating AMIs, see <a
20217          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami.html">Creating
20218          * your own AMIs</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>
20219          *  <p>For Amazon EBS-backed instances, <a>CreateImage</a> creates and
20220          * registers the AMI in a single request, so you don't have to register the AMI
20221          * yourself.</p>  <p>If needed, you can deregister an AMI at any time. Any
20222          * modifications you make to an AMI backed by an instance store volume invalidates
20223          * its registration. If you make changes to an image, deregister the previous image
20224          * and register the new image.</p> <p> <b>Register a snapshot of a root device
20225          * volume</b> </p> <p>You can use <code>RegisterImage</code> to create an Amazon
20226          * EBS-backed Linux AMI from a snapshot of a root device volume. You specify the
20227          * snapshot using a block device mapping. You can't set the encryption state of the
20228          * volume using the block device mapping. If the snapshot is encrypted, or
20229          * encryption by default is enabled, the root volume of an instance launched from
20230          * the AMI is encrypted.</p> <p>For more information, see <a
20231          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-ebs.html#creating-launching-ami-from-snapshot">Create
20232          * a Linux AMI from a snapshot</a> and <a
20233          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AMIEncryption.html">Use
20234          * encryption with Amazon EBS-backed AMIs</a> in the <i>Amazon Elastic Compute
20235          * Cloud User Guide</i>.</p> <p> <b>Amazon Web Services Marketplace product
20236          * codes</b> </p> <p>If any snapshots have Amazon Web Services Marketplace product
20237          * codes, they are copied to the new AMI.</p> <p>Windows and some Linux
20238          * distributions, such as Red Hat Enterprise Linux (RHEL) and SUSE Linux Enterprise
20239          * Server (SLES), use the Amazon EC2 billing product code associated with an AMI to
20240          * verify the subscription status for package updates. To create a new AMI for
20241          * operating systems that require a billing product code, instead of registering
20242          * the AMI, do the following to preserve the billing product code association:</p>
20243          * <ol> <li> <p>Launch an instance from an existing AMI with that billing product
20244          * code.</p> </li> <li> <p>Customize the instance.</p> </li> <li> <p>Create an AMI
20245          * from the instance using <a>CreateImage</a>.</p> </li> </ol> <p>If you purchase a
20246          * Reserved Instance to apply to an On-Demand Instance that was launched from an
20247          * AMI with a billing product code, make sure that the Reserved Instance has the
20248          * matching billing product code. If you purchase a Reserved Instance without the
20249          * matching billing product code, the Reserved Instance will not be applied to the
20250          * On-Demand Instance. For information about how to obtain the platform details and
20251          * billing information of an AMI, see <a
20252          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-billing-info.html">Understanding
20253          * AMI billing</a> in the <i>Amazon Elastic Compute Cloud User
20254          * Guide</i>.</p><p><h3>See Also:</h3>   <a
20255          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RegisterImage">AWS
20256          * API Reference</a></p>
20257          *
20258          * returns a future to the operation so that it can be executed in parallel to other requests.
20259          */
20260         virtual Model::RegisterImageOutcomeCallable RegisterImageCallable(const Model::RegisterImageRequest& request) const;
20261 
20262         /**
20263          * <p>Registers an AMI. When you're creating an AMI, this is the final step you
20264          * must complete before you can launch an instance from the AMI. For more
20265          * information about creating AMIs, see <a
20266          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami.html">Creating
20267          * your own AMIs</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>
20268          *  <p>For Amazon EBS-backed instances, <a>CreateImage</a> creates and
20269          * registers the AMI in a single request, so you don't have to register the AMI
20270          * yourself.</p>  <p>If needed, you can deregister an AMI at any time. Any
20271          * modifications you make to an AMI backed by an instance store volume invalidates
20272          * its registration. If you make changes to an image, deregister the previous image
20273          * and register the new image.</p> <p> <b>Register a snapshot of a root device
20274          * volume</b> </p> <p>You can use <code>RegisterImage</code> to create an Amazon
20275          * EBS-backed Linux AMI from a snapshot of a root device volume. You specify the
20276          * snapshot using a block device mapping. You can't set the encryption state of the
20277          * volume using the block device mapping. If the snapshot is encrypted, or
20278          * encryption by default is enabled, the root volume of an instance launched from
20279          * the AMI is encrypted.</p> <p>For more information, see <a
20280          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-ebs.html#creating-launching-ami-from-snapshot">Create
20281          * a Linux AMI from a snapshot</a> and <a
20282          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AMIEncryption.html">Use
20283          * encryption with Amazon EBS-backed AMIs</a> in the <i>Amazon Elastic Compute
20284          * Cloud User Guide</i>.</p> <p> <b>Amazon Web Services Marketplace product
20285          * codes</b> </p> <p>If any snapshots have Amazon Web Services Marketplace product
20286          * codes, they are copied to the new AMI.</p> <p>Windows and some Linux
20287          * distributions, such as Red Hat Enterprise Linux (RHEL) and SUSE Linux Enterprise
20288          * Server (SLES), use the Amazon EC2 billing product code associated with an AMI to
20289          * verify the subscription status for package updates. To create a new AMI for
20290          * operating systems that require a billing product code, instead of registering
20291          * the AMI, do the following to preserve the billing product code association:</p>
20292          * <ol> <li> <p>Launch an instance from an existing AMI with that billing product
20293          * code.</p> </li> <li> <p>Customize the instance.</p> </li> <li> <p>Create an AMI
20294          * from the instance using <a>CreateImage</a>.</p> </li> </ol> <p>If you purchase a
20295          * Reserved Instance to apply to an On-Demand Instance that was launched from an
20296          * AMI with a billing product code, make sure that the Reserved Instance has the
20297          * matching billing product code. If you purchase a Reserved Instance without the
20298          * matching billing product code, the Reserved Instance will not be applied to the
20299          * On-Demand Instance. For information about how to obtain the platform details and
20300          * billing information of an AMI, see <a
20301          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-billing-info.html">Understanding
20302          * AMI billing</a> in the <i>Amazon Elastic Compute Cloud User
20303          * Guide</i>.</p><p><h3>See Also:</h3>   <a
20304          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RegisterImage">AWS
20305          * API Reference</a></p>
20306          *
20307          * Queues the request into a thread executor and triggers associated callback when operation has finished.
20308          */
20309         virtual void RegisterImageAsync(const Model::RegisterImageRequest& request, const RegisterImageResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
20310 
20311         /**
20312          * <p>Registers a set of tag keys to include in scheduled event notifications for
20313          * your resources. </p> <p>To remove tags, use .</p><p><h3>See Also:</h3>   <a
20314          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RegisterInstanceEventNotificationAttributes">AWS
20315          * API Reference</a></p>
20316          */
20317         virtual Model::RegisterInstanceEventNotificationAttributesOutcome RegisterInstanceEventNotificationAttributes(const Model::RegisterInstanceEventNotificationAttributesRequest& request) const;
20318 
20319         /**
20320          * <p>Registers a set of tag keys to include in scheduled event notifications for
20321          * your resources. </p> <p>To remove tags, use .</p><p><h3>See Also:</h3>   <a
20322          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RegisterInstanceEventNotificationAttributes">AWS
20323          * API Reference</a></p>
20324          *
20325          * returns a future to the operation so that it can be executed in parallel to other requests.
20326          */
20327         virtual Model::RegisterInstanceEventNotificationAttributesOutcomeCallable RegisterInstanceEventNotificationAttributesCallable(const Model::RegisterInstanceEventNotificationAttributesRequest& request) const;
20328 
20329         /**
20330          * <p>Registers a set of tag keys to include in scheduled event notifications for
20331          * your resources. </p> <p>To remove tags, use .</p><p><h3>See Also:</h3>   <a
20332          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RegisterInstanceEventNotificationAttributes">AWS
20333          * API Reference</a></p>
20334          *
20335          * Queues the request into a thread executor and triggers associated callback when operation has finished.
20336          */
20337         virtual void RegisterInstanceEventNotificationAttributesAsync(const Model::RegisterInstanceEventNotificationAttributesRequest& request, const RegisterInstanceEventNotificationAttributesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
20338 
20339         /**
20340          * <p>Registers members (network interfaces) with the transit gateway multicast
20341          * group. A member is a network interface associated with a supported EC2 instance
20342          * that receives multicast traffic. For information about supported instances, see
20343          * <a
20344          * href="https://docs.aws.amazon.com/vpc/latest/tgw/transit-gateway-limits.html#multicast-limits">Multicast
20345          * Consideration</a> in <i>Amazon VPC Transit Gateways</i>.</p> <p>After you add
20346          * the members, use <a
20347          * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_SearchTransitGatewayMulticastGroups.html">SearchTransitGatewayMulticastGroups</a>
20348          * to verify that the members were added to the transit gateway multicast
20349          * group.</p><p><h3>See Also:</h3>   <a
20350          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RegisterTransitGatewayMulticastGroupMembers">AWS
20351          * API Reference</a></p>
20352          */
20353         virtual Model::RegisterTransitGatewayMulticastGroupMembersOutcome RegisterTransitGatewayMulticastGroupMembers(const Model::RegisterTransitGatewayMulticastGroupMembersRequest& request) const;
20354 
20355         /**
20356          * <p>Registers members (network interfaces) with the transit gateway multicast
20357          * group. A member is a network interface associated with a supported EC2 instance
20358          * that receives multicast traffic. For information about supported instances, see
20359          * <a
20360          * href="https://docs.aws.amazon.com/vpc/latest/tgw/transit-gateway-limits.html#multicast-limits">Multicast
20361          * Consideration</a> in <i>Amazon VPC Transit Gateways</i>.</p> <p>After you add
20362          * the members, use <a
20363          * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_SearchTransitGatewayMulticastGroups.html">SearchTransitGatewayMulticastGroups</a>
20364          * to verify that the members were added to the transit gateway multicast
20365          * group.</p><p><h3>See Also:</h3>   <a
20366          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RegisterTransitGatewayMulticastGroupMembers">AWS
20367          * API Reference</a></p>
20368          *
20369          * returns a future to the operation so that it can be executed in parallel to other requests.
20370          */
20371         virtual Model::RegisterTransitGatewayMulticastGroupMembersOutcomeCallable RegisterTransitGatewayMulticastGroupMembersCallable(const Model::RegisterTransitGatewayMulticastGroupMembersRequest& request) const;
20372 
20373         /**
20374          * <p>Registers members (network interfaces) with the transit gateway multicast
20375          * group. A member is a network interface associated with a supported EC2 instance
20376          * that receives multicast traffic. For information about supported instances, see
20377          * <a
20378          * href="https://docs.aws.amazon.com/vpc/latest/tgw/transit-gateway-limits.html#multicast-limits">Multicast
20379          * Consideration</a> in <i>Amazon VPC Transit Gateways</i>.</p> <p>After you add
20380          * the members, use <a
20381          * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_SearchTransitGatewayMulticastGroups.html">SearchTransitGatewayMulticastGroups</a>
20382          * to verify that the members were added to the transit gateway multicast
20383          * group.</p><p><h3>See Also:</h3>   <a
20384          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RegisterTransitGatewayMulticastGroupMembers">AWS
20385          * API Reference</a></p>
20386          *
20387          * Queues the request into a thread executor and triggers associated callback when operation has finished.
20388          */
20389         virtual void RegisterTransitGatewayMulticastGroupMembersAsync(const Model::RegisterTransitGatewayMulticastGroupMembersRequest& request, const RegisterTransitGatewayMulticastGroupMembersResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
20390 
20391         /**
20392          * <p>Registers sources (network interfaces) with the specified transit gateway
20393          * multicast group.</p> <p>A multicast source is a network interface attached to a
20394          * supported instance that sends multicast traffic. For information about supported
20395          * instances, see <a
20396          * href="https://docs.aws.amazon.com/vpc/latest/tgw/transit-gateway-limits.html#multicast-limits">Multicast
20397          * Considerations</a> in <i>Amazon VPC Transit Gateways</i>.</p> <p>After you add
20398          * the source, use <a
20399          * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_SearchTransitGatewayMulticastGroups.html">SearchTransitGatewayMulticastGroups</a>
20400          * to verify that the source was added to the multicast group.</p><p><h3>See
20401          * Also:</h3>   <a
20402          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RegisterTransitGatewayMulticastGroupSources">AWS
20403          * API Reference</a></p>
20404          */
20405         virtual Model::RegisterTransitGatewayMulticastGroupSourcesOutcome RegisterTransitGatewayMulticastGroupSources(const Model::RegisterTransitGatewayMulticastGroupSourcesRequest& request) const;
20406 
20407         /**
20408          * <p>Registers sources (network interfaces) with the specified transit gateway
20409          * multicast group.</p> <p>A multicast source is a network interface attached to a
20410          * supported instance that sends multicast traffic. For information about supported
20411          * instances, see <a
20412          * href="https://docs.aws.amazon.com/vpc/latest/tgw/transit-gateway-limits.html#multicast-limits">Multicast
20413          * Considerations</a> in <i>Amazon VPC Transit Gateways</i>.</p> <p>After you add
20414          * the source, use <a
20415          * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_SearchTransitGatewayMulticastGroups.html">SearchTransitGatewayMulticastGroups</a>
20416          * to verify that the source was added to the multicast group.</p><p><h3>See
20417          * Also:</h3>   <a
20418          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RegisterTransitGatewayMulticastGroupSources">AWS
20419          * API Reference</a></p>
20420          *
20421          * returns a future to the operation so that it can be executed in parallel to other requests.
20422          */
20423         virtual Model::RegisterTransitGatewayMulticastGroupSourcesOutcomeCallable RegisterTransitGatewayMulticastGroupSourcesCallable(const Model::RegisterTransitGatewayMulticastGroupSourcesRequest& request) const;
20424 
20425         /**
20426          * <p>Registers sources (network interfaces) with the specified transit gateway
20427          * multicast group.</p> <p>A multicast source is a network interface attached to a
20428          * supported instance that sends multicast traffic. For information about supported
20429          * instances, see <a
20430          * href="https://docs.aws.amazon.com/vpc/latest/tgw/transit-gateway-limits.html#multicast-limits">Multicast
20431          * Considerations</a> in <i>Amazon VPC Transit Gateways</i>.</p> <p>After you add
20432          * the source, use <a
20433          * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_SearchTransitGatewayMulticastGroups.html">SearchTransitGatewayMulticastGroups</a>
20434          * to verify that the source was added to the multicast group.</p><p><h3>See
20435          * Also:</h3>   <a
20436          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RegisterTransitGatewayMulticastGroupSources">AWS
20437          * API Reference</a></p>
20438          *
20439          * Queues the request into a thread executor and triggers associated callback when operation has finished.
20440          */
20441         virtual void RegisterTransitGatewayMulticastGroupSourcesAsync(const Model::RegisterTransitGatewayMulticastGroupSourcesRequest& request, const RegisterTransitGatewayMulticastGroupSourcesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
20442 
20443         /**
20444          * <p>Rejects a request to associate cross-account subnets with a transit gateway
20445          * multicast domain.</p><p><h3>See Also:</h3>   <a
20446          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RejectTransitGatewayMulticastDomainAssociations">AWS
20447          * API Reference</a></p>
20448          */
20449         virtual Model::RejectTransitGatewayMulticastDomainAssociationsOutcome RejectTransitGatewayMulticastDomainAssociations(const Model::RejectTransitGatewayMulticastDomainAssociationsRequest& request) const;
20450 
20451         /**
20452          * <p>Rejects a request to associate cross-account subnets with a transit gateway
20453          * multicast domain.</p><p><h3>See Also:</h3>   <a
20454          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RejectTransitGatewayMulticastDomainAssociations">AWS
20455          * API Reference</a></p>
20456          *
20457          * returns a future to the operation so that it can be executed in parallel to other requests.
20458          */
20459         virtual Model::RejectTransitGatewayMulticastDomainAssociationsOutcomeCallable RejectTransitGatewayMulticastDomainAssociationsCallable(const Model::RejectTransitGatewayMulticastDomainAssociationsRequest& request) const;
20460 
20461         /**
20462          * <p>Rejects a request to associate cross-account subnets with a transit gateway
20463          * multicast domain.</p><p><h3>See Also:</h3>   <a
20464          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RejectTransitGatewayMulticastDomainAssociations">AWS
20465          * API Reference</a></p>
20466          *
20467          * Queues the request into a thread executor and triggers associated callback when operation has finished.
20468          */
20469         virtual void RejectTransitGatewayMulticastDomainAssociationsAsync(const Model::RejectTransitGatewayMulticastDomainAssociationsRequest& request, const RejectTransitGatewayMulticastDomainAssociationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
20470 
20471         /**
20472          * <p>Rejects a transit gateway peering attachment request.</p><p><h3>See
20473          * Also:</h3>   <a
20474          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RejectTransitGatewayPeeringAttachment">AWS
20475          * API Reference</a></p>
20476          */
20477         virtual Model::RejectTransitGatewayPeeringAttachmentOutcome RejectTransitGatewayPeeringAttachment(const Model::RejectTransitGatewayPeeringAttachmentRequest& request) const;
20478 
20479         /**
20480          * <p>Rejects a transit gateway peering attachment request.</p><p><h3>See
20481          * Also:</h3>   <a
20482          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RejectTransitGatewayPeeringAttachment">AWS
20483          * API Reference</a></p>
20484          *
20485          * returns a future to the operation so that it can be executed in parallel to other requests.
20486          */
20487         virtual Model::RejectTransitGatewayPeeringAttachmentOutcomeCallable RejectTransitGatewayPeeringAttachmentCallable(const Model::RejectTransitGatewayPeeringAttachmentRequest& request) const;
20488 
20489         /**
20490          * <p>Rejects a transit gateway peering attachment request.</p><p><h3>See
20491          * Also:</h3>   <a
20492          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RejectTransitGatewayPeeringAttachment">AWS
20493          * API Reference</a></p>
20494          *
20495          * Queues the request into a thread executor and triggers associated callback when operation has finished.
20496          */
20497         virtual void RejectTransitGatewayPeeringAttachmentAsync(const Model::RejectTransitGatewayPeeringAttachmentRequest& request, const RejectTransitGatewayPeeringAttachmentResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
20498 
20499         /**
20500          * <p>Rejects a request to attach a VPC to a transit gateway.</p> <p>The VPC
20501          * attachment must be in the <code>pendingAcceptance</code> state. Use
20502          * <a>DescribeTransitGatewayVpcAttachments</a> to view your pending VPC attachment
20503          * requests. Use <a>AcceptTransitGatewayVpcAttachment</a> to accept a VPC
20504          * attachment request.</p><p><h3>See Also:</h3>   <a
20505          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RejectTransitGatewayVpcAttachment">AWS
20506          * API Reference</a></p>
20507          */
20508         virtual Model::RejectTransitGatewayVpcAttachmentOutcome RejectTransitGatewayVpcAttachment(const Model::RejectTransitGatewayVpcAttachmentRequest& request) const;
20509 
20510         /**
20511          * <p>Rejects a request to attach a VPC to a transit gateway.</p> <p>The VPC
20512          * attachment must be in the <code>pendingAcceptance</code> state. Use
20513          * <a>DescribeTransitGatewayVpcAttachments</a> to view your pending VPC attachment
20514          * requests. Use <a>AcceptTransitGatewayVpcAttachment</a> to accept a VPC
20515          * attachment request.</p><p><h3>See Also:</h3>   <a
20516          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RejectTransitGatewayVpcAttachment">AWS
20517          * API Reference</a></p>
20518          *
20519          * returns a future to the operation so that it can be executed in parallel to other requests.
20520          */
20521         virtual Model::RejectTransitGatewayVpcAttachmentOutcomeCallable RejectTransitGatewayVpcAttachmentCallable(const Model::RejectTransitGatewayVpcAttachmentRequest& request) const;
20522 
20523         /**
20524          * <p>Rejects a request to attach a VPC to a transit gateway.</p> <p>The VPC
20525          * attachment must be in the <code>pendingAcceptance</code> state. Use
20526          * <a>DescribeTransitGatewayVpcAttachments</a> to view your pending VPC attachment
20527          * requests. Use <a>AcceptTransitGatewayVpcAttachment</a> to accept a VPC
20528          * attachment request.</p><p><h3>See Also:</h3>   <a
20529          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RejectTransitGatewayVpcAttachment">AWS
20530          * API Reference</a></p>
20531          *
20532          * Queues the request into a thread executor and triggers associated callback when operation has finished.
20533          */
20534         virtual void RejectTransitGatewayVpcAttachmentAsync(const Model::RejectTransitGatewayVpcAttachmentRequest& request, const RejectTransitGatewayVpcAttachmentResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
20535 
20536         /**
20537          * <p>Rejects one or more VPC endpoint connection requests to your VPC endpoint
20538          * service.</p><p><h3>See Also:</h3>   <a
20539          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RejectVpcEndpointConnections">AWS
20540          * API Reference</a></p>
20541          */
20542         virtual Model::RejectVpcEndpointConnectionsOutcome RejectVpcEndpointConnections(const Model::RejectVpcEndpointConnectionsRequest& request) const;
20543 
20544         /**
20545          * <p>Rejects one or more VPC endpoint connection requests to your VPC endpoint
20546          * service.</p><p><h3>See Also:</h3>   <a
20547          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RejectVpcEndpointConnections">AWS
20548          * API Reference</a></p>
20549          *
20550          * returns a future to the operation so that it can be executed in parallel to other requests.
20551          */
20552         virtual Model::RejectVpcEndpointConnectionsOutcomeCallable RejectVpcEndpointConnectionsCallable(const Model::RejectVpcEndpointConnectionsRequest& request) const;
20553 
20554         /**
20555          * <p>Rejects one or more VPC endpoint connection requests to your VPC endpoint
20556          * service.</p><p><h3>See Also:</h3>   <a
20557          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RejectVpcEndpointConnections">AWS
20558          * API Reference</a></p>
20559          *
20560          * Queues the request into a thread executor and triggers associated callback when operation has finished.
20561          */
20562         virtual void RejectVpcEndpointConnectionsAsync(const Model::RejectVpcEndpointConnectionsRequest& request, const RejectVpcEndpointConnectionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
20563 
20564         /**
20565          * <p>Rejects a VPC peering connection request. The VPC peering connection must be
20566          * in the <code>pending-acceptance</code> state. Use the
20567          * <a>DescribeVpcPeeringConnections</a> request to view your outstanding VPC
20568          * peering connection requests. To delete an active VPC peering connection, or to
20569          * delete a VPC peering connection request that you initiated, use
20570          * <a>DeleteVpcPeeringConnection</a>.</p><p><h3>See Also:</h3>   <a
20571          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RejectVpcPeeringConnection">AWS
20572          * API Reference</a></p>
20573          */
20574         virtual Model::RejectVpcPeeringConnectionOutcome RejectVpcPeeringConnection(const Model::RejectVpcPeeringConnectionRequest& request) const;
20575 
20576         /**
20577          * <p>Rejects a VPC peering connection request. The VPC peering connection must be
20578          * in the <code>pending-acceptance</code> state. Use the
20579          * <a>DescribeVpcPeeringConnections</a> request to view your outstanding VPC
20580          * peering connection requests. To delete an active VPC peering connection, or to
20581          * delete a VPC peering connection request that you initiated, use
20582          * <a>DeleteVpcPeeringConnection</a>.</p><p><h3>See Also:</h3>   <a
20583          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RejectVpcPeeringConnection">AWS
20584          * API Reference</a></p>
20585          *
20586          * returns a future to the operation so that it can be executed in parallel to other requests.
20587          */
20588         virtual Model::RejectVpcPeeringConnectionOutcomeCallable RejectVpcPeeringConnectionCallable(const Model::RejectVpcPeeringConnectionRequest& request) const;
20589 
20590         /**
20591          * <p>Rejects a VPC peering connection request. The VPC peering connection must be
20592          * in the <code>pending-acceptance</code> state. Use the
20593          * <a>DescribeVpcPeeringConnections</a> request to view your outstanding VPC
20594          * peering connection requests. To delete an active VPC peering connection, or to
20595          * delete a VPC peering connection request that you initiated, use
20596          * <a>DeleteVpcPeeringConnection</a>.</p><p><h3>See Also:</h3>   <a
20597          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RejectVpcPeeringConnection">AWS
20598          * API Reference</a></p>
20599          *
20600          * Queues the request into a thread executor and triggers associated callback when operation has finished.
20601          */
20602         virtual void RejectVpcPeeringConnectionAsync(const Model::RejectVpcPeeringConnectionRequest& request, const RejectVpcPeeringConnectionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
20603 
20604         /**
20605          * <p>Releases the specified Elastic IP address.</p> <p>[EC2-Classic, default VPC]
20606          * Releasing an Elastic IP address automatically disassociates it from any instance
20607          * that it's associated with. To disassociate an Elastic IP address without
20608          * releasing it, use <a>DisassociateAddress</a>.</p> <p>[Nondefault VPC] You must
20609          * use <a>DisassociateAddress</a> to disassociate the Elastic IP address before you
20610          * can release it. Otherwise, Amazon EC2 returns an error
20611          * (<code>InvalidIPAddress.InUse</code>).</p> <p>After releasing an Elastic IP
20612          * address, it is released to the IP address pool. Be sure to update your DNS
20613          * records and any servers or devices that communicate with the address. If you
20614          * attempt to release an Elastic IP address that you already released, you'll get
20615          * an <code>AuthFailure</code> error if the address is already allocated to another
20616          * Amazon Web Services account.</p> <p>[EC2-VPC] After you release an Elastic IP
20617          * address for use in a VPC, you might be able to recover it. For more information,
20618          * see <a>AllocateAddress</a>.</p><p><h3>See Also:</h3>   <a
20619          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ReleaseAddress">AWS
20620          * API Reference</a></p>
20621          */
20622         virtual Model::ReleaseAddressOutcome ReleaseAddress(const Model::ReleaseAddressRequest& request) const;
20623 
20624         /**
20625          * <p>Releases the specified Elastic IP address.</p> <p>[EC2-Classic, default VPC]
20626          * Releasing an Elastic IP address automatically disassociates it from any instance
20627          * that it's associated with. To disassociate an Elastic IP address without
20628          * releasing it, use <a>DisassociateAddress</a>.</p> <p>[Nondefault VPC] You must
20629          * use <a>DisassociateAddress</a> to disassociate the Elastic IP address before you
20630          * can release it. Otherwise, Amazon EC2 returns an error
20631          * (<code>InvalidIPAddress.InUse</code>).</p> <p>After releasing an Elastic IP
20632          * address, it is released to the IP address pool. Be sure to update your DNS
20633          * records and any servers or devices that communicate with the address. If you
20634          * attempt to release an Elastic IP address that you already released, you'll get
20635          * an <code>AuthFailure</code> error if the address is already allocated to another
20636          * Amazon Web Services account.</p> <p>[EC2-VPC] After you release an Elastic IP
20637          * address for use in a VPC, you might be able to recover it. For more information,
20638          * see <a>AllocateAddress</a>.</p><p><h3>See Also:</h3>   <a
20639          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ReleaseAddress">AWS
20640          * API Reference</a></p>
20641          *
20642          * returns a future to the operation so that it can be executed in parallel to other requests.
20643          */
20644         virtual Model::ReleaseAddressOutcomeCallable ReleaseAddressCallable(const Model::ReleaseAddressRequest& request) const;
20645 
20646         /**
20647          * <p>Releases the specified Elastic IP address.</p> <p>[EC2-Classic, default VPC]
20648          * Releasing an Elastic IP address automatically disassociates it from any instance
20649          * that it's associated with. To disassociate an Elastic IP address without
20650          * releasing it, use <a>DisassociateAddress</a>.</p> <p>[Nondefault VPC] You must
20651          * use <a>DisassociateAddress</a> to disassociate the Elastic IP address before you
20652          * can release it. Otherwise, Amazon EC2 returns an error
20653          * (<code>InvalidIPAddress.InUse</code>).</p> <p>After releasing an Elastic IP
20654          * address, it is released to the IP address pool. Be sure to update your DNS
20655          * records and any servers or devices that communicate with the address. If you
20656          * attempt to release an Elastic IP address that you already released, you'll get
20657          * an <code>AuthFailure</code> error if the address is already allocated to another
20658          * Amazon Web Services account.</p> <p>[EC2-VPC] After you release an Elastic IP
20659          * address for use in a VPC, you might be able to recover it. For more information,
20660          * see <a>AllocateAddress</a>.</p><p><h3>See Also:</h3>   <a
20661          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ReleaseAddress">AWS
20662          * API Reference</a></p>
20663          *
20664          * Queues the request into a thread executor and triggers associated callback when operation has finished.
20665          */
20666         virtual void ReleaseAddressAsync(const Model::ReleaseAddressRequest& request, const ReleaseAddressResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
20667 
20668         /**
20669          * <p>When you no longer want to use an On-Demand Dedicated Host it can be
20670          * released. On-Demand billing is stopped and the host goes into
20671          * <code>released</code> state. The host ID of Dedicated Hosts that have been
20672          * released can no longer be specified in another request, for example, to modify
20673          * the host. You must stop or terminate all instances on a host before it can be
20674          * released.</p> <p>When Dedicated Hosts are released, it may take some time for
20675          * them to stop counting toward your limit and you may receive capacity errors when
20676          * trying to allocate new Dedicated Hosts. Wait a few minutes and then try
20677          * again.</p> <p>Released hosts still appear in a <a>DescribeHosts</a>
20678          * response.</p><p><h3>See Also:</h3>   <a
20679          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ReleaseHosts">AWS
20680          * API Reference</a></p>
20681          */
20682         virtual Model::ReleaseHostsOutcome ReleaseHosts(const Model::ReleaseHostsRequest& request) const;
20683 
20684         /**
20685          * <p>When you no longer want to use an On-Demand Dedicated Host it can be
20686          * released. On-Demand billing is stopped and the host goes into
20687          * <code>released</code> state. The host ID of Dedicated Hosts that have been
20688          * released can no longer be specified in another request, for example, to modify
20689          * the host. You must stop or terminate all instances on a host before it can be
20690          * released.</p> <p>When Dedicated Hosts are released, it may take some time for
20691          * them to stop counting toward your limit and you may receive capacity errors when
20692          * trying to allocate new Dedicated Hosts. Wait a few minutes and then try
20693          * again.</p> <p>Released hosts still appear in a <a>DescribeHosts</a>
20694          * response.</p><p><h3>See Also:</h3>   <a
20695          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ReleaseHosts">AWS
20696          * API Reference</a></p>
20697          *
20698          * returns a future to the operation so that it can be executed in parallel to other requests.
20699          */
20700         virtual Model::ReleaseHostsOutcomeCallable ReleaseHostsCallable(const Model::ReleaseHostsRequest& request) const;
20701 
20702         /**
20703          * <p>When you no longer want to use an On-Demand Dedicated Host it can be
20704          * released. On-Demand billing is stopped and the host goes into
20705          * <code>released</code> state. The host ID of Dedicated Hosts that have been
20706          * released can no longer be specified in another request, for example, to modify
20707          * the host. You must stop or terminate all instances on a host before it can be
20708          * released.</p> <p>When Dedicated Hosts are released, it may take some time for
20709          * them to stop counting toward your limit and you may receive capacity errors when
20710          * trying to allocate new Dedicated Hosts. Wait a few minutes and then try
20711          * again.</p> <p>Released hosts still appear in a <a>DescribeHosts</a>
20712          * response.</p><p><h3>See Also:</h3>   <a
20713          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ReleaseHosts">AWS
20714          * API Reference</a></p>
20715          *
20716          * Queues the request into a thread executor and triggers associated callback when operation has finished.
20717          */
20718         virtual void ReleaseHostsAsync(const Model::ReleaseHostsRequest& request, const ReleaseHostsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
20719 
20720         /**
20721          * <p>Replaces an IAM instance profile for the specified running instance. You can
20722          * use this action to change the IAM instance profile that's associated with an
20723          * instance without having to disassociate the existing IAM instance profile
20724          * first.</p> <p>Use <a>DescribeIamInstanceProfileAssociations</a> to get the
20725          * association ID.</p><p><h3>See Also:</h3>   <a
20726          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ReplaceIamInstanceProfileAssociation">AWS
20727          * API Reference</a></p>
20728          */
20729         virtual Model::ReplaceIamInstanceProfileAssociationOutcome ReplaceIamInstanceProfileAssociation(const Model::ReplaceIamInstanceProfileAssociationRequest& request) const;
20730 
20731         /**
20732          * <p>Replaces an IAM instance profile for the specified running instance. You can
20733          * use this action to change the IAM instance profile that's associated with an
20734          * instance without having to disassociate the existing IAM instance profile
20735          * first.</p> <p>Use <a>DescribeIamInstanceProfileAssociations</a> to get the
20736          * association ID.</p><p><h3>See Also:</h3>   <a
20737          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ReplaceIamInstanceProfileAssociation">AWS
20738          * API Reference</a></p>
20739          *
20740          * returns a future to the operation so that it can be executed in parallel to other requests.
20741          */
20742         virtual Model::ReplaceIamInstanceProfileAssociationOutcomeCallable ReplaceIamInstanceProfileAssociationCallable(const Model::ReplaceIamInstanceProfileAssociationRequest& request) const;
20743 
20744         /**
20745          * <p>Replaces an IAM instance profile for the specified running instance. You can
20746          * use this action to change the IAM instance profile that's associated with an
20747          * instance without having to disassociate the existing IAM instance profile
20748          * first.</p> <p>Use <a>DescribeIamInstanceProfileAssociations</a> to get the
20749          * association ID.</p><p><h3>See Also:</h3>   <a
20750          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ReplaceIamInstanceProfileAssociation">AWS
20751          * API Reference</a></p>
20752          *
20753          * Queues the request into a thread executor and triggers associated callback when operation has finished.
20754          */
20755         virtual void ReplaceIamInstanceProfileAssociationAsync(const Model::ReplaceIamInstanceProfileAssociationRequest& request, const ReplaceIamInstanceProfileAssociationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
20756 
20757         /**
20758          * <p>Changes which network ACL a subnet is associated with. By default when you
20759          * create a subnet, it's automatically associated with the default network ACL. For
20760          * more information, see <a
20761          * href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_ACLs.html">Network
20762          * ACLs</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.</p> <p>This is
20763          * an idempotent operation.</p><p><h3>See Also:</h3>   <a
20764          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ReplaceNetworkAclAssociation">AWS
20765          * API Reference</a></p>
20766          */
20767         virtual Model::ReplaceNetworkAclAssociationOutcome ReplaceNetworkAclAssociation(const Model::ReplaceNetworkAclAssociationRequest& request) const;
20768 
20769         /**
20770          * <p>Changes which network ACL a subnet is associated with. By default when you
20771          * create a subnet, it's automatically associated with the default network ACL. For
20772          * more information, see <a
20773          * href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_ACLs.html">Network
20774          * ACLs</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.</p> <p>This is
20775          * an idempotent operation.</p><p><h3>See Also:</h3>   <a
20776          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ReplaceNetworkAclAssociation">AWS
20777          * API Reference</a></p>
20778          *
20779          * returns a future to the operation so that it can be executed in parallel to other requests.
20780          */
20781         virtual Model::ReplaceNetworkAclAssociationOutcomeCallable ReplaceNetworkAclAssociationCallable(const Model::ReplaceNetworkAclAssociationRequest& request) const;
20782 
20783         /**
20784          * <p>Changes which network ACL a subnet is associated with. By default when you
20785          * create a subnet, it's automatically associated with the default network ACL. For
20786          * more information, see <a
20787          * href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_ACLs.html">Network
20788          * ACLs</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.</p> <p>This is
20789          * an idempotent operation.</p><p><h3>See Also:</h3>   <a
20790          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ReplaceNetworkAclAssociation">AWS
20791          * API Reference</a></p>
20792          *
20793          * Queues the request into a thread executor and triggers associated callback when operation has finished.
20794          */
20795         virtual void ReplaceNetworkAclAssociationAsync(const Model::ReplaceNetworkAclAssociationRequest& request, const ReplaceNetworkAclAssociationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
20796 
20797         /**
20798          * <p>Replaces an entry (rule) in a network ACL. For more information, see <a
20799          * href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_ACLs.html">Network
20800          * ACLs</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.</p><p><h3>See
20801          * Also:</h3>   <a
20802          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ReplaceNetworkAclEntry">AWS
20803          * API Reference</a></p>
20804          */
20805         virtual Model::ReplaceNetworkAclEntryOutcome ReplaceNetworkAclEntry(const Model::ReplaceNetworkAclEntryRequest& request) const;
20806 
20807         /**
20808          * <p>Replaces an entry (rule) in a network ACL. For more information, see <a
20809          * href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_ACLs.html">Network
20810          * ACLs</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.</p><p><h3>See
20811          * Also:</h3>   <a
20812          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ReplaceNetworkAclEntry">AWS
20813          * API Reference</a></p>
20814          *
20815          * returns a future to the operation so that it can be executed in parallel to other requests.
20816          */
20817         virtual Model::ReplaceNetworkAclEntryOutcomeCallable ReplaceNetworkAclEntryCallable(const Model::ReplaceNetworkAclEntryRequest& request) const;
20818 
20819         /**
20820          * <p>Replaces an entry (rule) in a network ACL. For more information, see <a
20821          * href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_ACLs.html">Network
20822          * ACLs</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.</p><p><h3>See
20823          * Also:</h3>   <a
20824          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ReplaceNetworkAclEntry">AWS
20825          * API Reference</a></p>
20826          *
20827          * Queues the request into a thread executor and triggers associated callback when operation has finished.
20828          */
20829         virtual void ReplaceNetworkAclEntryAsync(const Model::ReplaceNetworkAclEntryRequest& request, const ReplaceNetworkAclEntryResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
20830 
20831         /**
20832          * <p>Replaces an existing route within a route table in a VPC. You must provide
20833          * only one of the following: internet gateway, virtual private gateway, NAT
20834          * instance, NAT gateway, VPC peering connection, network interface, egress-only
20835          * internet gateway, or transit gateway.</p> <p>For more information, see <a
20836          * href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html">Route
20837          * tables</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.</p><p><h3>See
20838          * Also:</h3>   <a
20839          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ReplaceRoute">AWS
20840          * API Reference</a></p>
20841          */
20842         virtual Model::ReplaceRouteOutcome ReplaceRoute(const Model::ReplaceRouteRequest& request) const;
20843 
20844         /**
20845          * <p>Replaces an existing route within a route table in a VPC. You must provide
20846          * only one of the following: internet gateway, virtual private gateway, NAT
20847          * instance, NAT gateway, VPC peering connection, network interface, egress-only
20848          * internet gateway, or transit gateway.</p> <p>For more information, see <a
20849          * href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html">Route
20850          * tables</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.</p><p><h3>See
20851          * Also:</h3>   <a
20852          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ReplaceRoute">AWS
20853          * API Reference</a></p>
20854          *
20855          * returns a future to the operation so that it can be executed in parallel to other requests.
20856          */
20857         virtual Model::ReplaceRouteOutcomeCallable ReplaceRouteCallable(const Model::ReplaceRouteRequest& request) const;
20858 
20859         /**
20860          * <p>Replaces an existing route within a route table in a VPC. You must provide
20861          * only one of the following: internet gateway, virtual private gateway, NAT
20862          * instance, NAT gateway, VPC peering connection, network interface, egress-only
20863          * internet gateway, or transit gateway.</p> <p>For more information, see <a
20864          * href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html">Route
20865          * tables</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.</p><p><h3>See
20866          * Also:</h3>   <a
20867          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ReplaceRoute">AWS
20868          * API Reference</a></p>
20869          *
20870          * Queues the request into a thread executor and triggers associated callback when operation has finished.
20871          */
20872         virtual void ReplaceRouteAsync(const Model::ReplaceRouteRequest& request, const ReplaceRouteResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
20873 
20874         /**
20875          * <p>Changes the route table associated with a given subnet, internet gateway, or
20876          * virtual private gateway in a VPC. After the operation completes, the subnet or
20877          * gateway uses the routes in the new route table. For more information about route
20878          * tables, see <a
20879          * href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html">Route
20880          * tables</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.</p> <p>You can
20881          * also use this operation to change which table is the main route table in the
20882          * VPC. Specify the main route table's association ID and the route table ID of the
20883          * new main route table.</p><p><h3>See Also:</h3>   <a
20884          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ReplaceRouteTableAssociation">AWS
20885          * API Reference</a></p>
20886          */
20887         virtual Model::ReplaceRouteTableAssociationOutcome ReplaceRouteTableAssociation(const Model::ReplaceRouteTableAssociationRequest& request) const;
20888 
20889         /**
20890          * <p>Changes the route table associated with a given subnet, internet gateway, or
20891          * virtual private gateway in a VPC. After the operation completes, the subnet or
20892          * gateway uses the routes in the new route table. For more information about route
20893          * tables, see <a
20894          * href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html">Route
20895          * tables</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.</p> <p>You can
20896          * also use this operation to change which table is the main route table in the
20897          * VPC. Specify the main route table's association ID and the route table ID of the
20898          * new main route table.</p><p><h3>See Also:</h3>   <a
20899          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ReplaceRouteTableAssociation">AWS
20900          * API Reference</a></p>
20901          *
20902          * returns a future to the operation so that it can be executed in parallel to other requests.
20903          */
20904         virtual Model::ReplaceRouteTableAssociationOutcomeCallable ReplaceRouteTableAssociationCallable(const Model::ReplaceRouteTableAssociationRequest& request) const;
20905 
20906         /**
20907          * <p>Changes the route table associated with a given subnet, internet gateway, or
20908          * virtual private gateway in a VPC. After the operation completes, the subnet or
20909          * gateway uses the routes in the new route table. For more information about route
20910          * tables, see <a
20911          * href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html">Route
20912          * tables</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.</p> <p>You can
20913          * also use this operation to change which table is the main route table in the
20914          * VPC. Specify the main route table's association ID and the route table ID of the
20915          * new main route table.</p><p><h3>See Also:</h3>   <a
20916          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ReplaceRouteTableAssociation">AWS
20917          * API Reference</a></p>
20918          *
20919          * Queues the request into a thread executor and triggers associated callback when operation has finished.
20920          */
20921         virtual void ReplaceRouteTableAssociationAsync(const Model::ReplaceRouteTableAssociationRequest& request, const ReplaceRouteTableAssociationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
20922 
20923         /**
20924          * <p>Replaces the specified route in the specified transit gateway route
20925          * table.</p><p><h3>See Also:</h3>   <a
20926          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ReplaceTransitGatewayRoute">AWS
20927          * API Reference</a></p>
20928          */
20929         virtual Model::ReplaceTransitGatewayRouteOutcome ReplaceTransitGatewayRoute(const Model::ReplaceTransitGatewayRouteRequest& request) const;
20930 
20931         /**
20932          * <p>Replaces the specified route in the specified transit gateway route
20933          * table.</p><p><h3>See Also:</h3>   <a
20934          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ReplaceTransitGatewayRoute">AWS
20935          * API Reference</a></p>
20936          *
20937          * returns a future to the operation so that it can be executed in parallel to other requests.
20938          */
20939         virtual Model::ReplaceTransitGatewayRouteOutcomeCallable ReplaceTransitGatewayRouteCallable(const Model::ReplaceTransitGatewayRouteRequest& request) const;
20940 
20941         /**
20942          * <p>Replaces the specified route in the specified transit gateway route
20943          * table.</p><p><h3>See Also:</h3>   <a
20944          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ReplaceTransitGatewayRoute">AWS
20945          * API Reference</a></p>
20946          *
20947          * Queues the request into a thread executor and triggers associated callback when operation has finished.
20948          */
20949         virtual void ReplaceTransitGatewayRouteAsync(const Model::ReplaceTransitGatewayRouteRequest& request, const ReplaceTransitGatewayRouteResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
20950 
20951         /**
20952          * <p>Submits feedback about the status of an instance. The instance must be in the
20953          * <code>running</code> state. If your experience with the instance differs from
20954          * the instance status returned by <a>DescribeInstanceStatus</a>, use
20955          * <a>ReportInstanceStatus</a> to report your experience with the instance. Amazon
20956          * EC2 collects this information to improve the accuracy of status checks.</p>
20957          * <p>Use of this action does not change the value returned by
20958          * <a>DescribeInstanceStatus</a>.</p><p><h3>See Also:</h3>   <a
20959          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ReportInstanceStatus">AWS
20960          * API Reference</a></p>
20961          */
20962         virtual Model::ReportInstanceStatusOutcome ReportInstanceStatus(const Model::ReportInstanceStatusRequest& request) const;
20963 
20964         /**
20965          * <p>Submits feedback about the status of an instance. The instance must be in the
20966          * <code>running</code> state. If your experience with the instance differs from
20967          * the instance status returned by <a>DescribeInstanceStatus</a>, use
20968          * <a>ReportInstanceStatus</a> to report your experience with the instance. Amazon
20969          * EC2 collects this information to improve the accuracy of status checks.</p>
20970          * <p>Use of this action does not change the value returned by
20971          * <a>DescribeInstanceStatus</a>.</p><p><h3>See Also:</h3>   <a
20972          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ReportInstanceStatus">AWS
20973          * API Reference</a></p>
20974          *
20975          * returns a future to the operation so that it can be executed in parallel to other requests.
20976          */
20977         virtual Model::ReportInstanceStatusOutcomeCallable ReportInstanceStatusCallable(const Model::ReportInstanceStatusRequest& request) const;
20978 
20979         /**
20980          * <p>Submits feedback about the status of an instance. The instance must be in the
20981          * <code>running</code> state. If your experience with the instance differs from
20982          * the instance status returned by <a>DescribeInstanceStatus</a>, use
20983          * <a>ReportInstanceStatus</a> to report your experience with the instance. Amazon
20984          * EC2 collects this information to improve the accuracy of status checks.</p>
20985          * <p>Use of this action does not change the value returned by
20986          * <a>DescribeInstanceStatus</a>.</p><p><h3>See Also:</h3>   <a
20987          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ReportInstanceStatus">AWS
20988          * API Reference</a></p>
20989          *
20990          * Queues the request into a thread executor and triggers associated callback when operation has finished.
20991          */
20992         virtual void ReportInstanceStatusAsync(const Model::ReportInstanceStatusRequest& request, const ReportInstanceStatusResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
20993 
20994         /**
20995          * <p>Creates a Spot Fleet request.</p> <p>The Spot Fleet request specifies the
20996          * total target capacity and the On-Demand target capacity. Amazon EC2 calculates
20997          * the difference between the total capacity and On-Demand capacity, and launches
20998          * the difference as Spot capacity.</p> <p>You can submit a single request that
20999          * includes multiple launch specifications that vary by instance type, AMI,
21000          * Availability Zone, or subnet.</p> <p>By default, the Spot Fleet requests Spot
21001          * Instances in the Spot Instance pool where the price per unit is the lowest. Each
21002          * launch specification can include its own instance weighting that reflects the
21003          * value of the instance type to your application workload.</p> <p>Alternatively,
21004          * you can specify that the Spot Fleet distribute the target capacity across the
21005          * Spot pools included in its launch specifications. By ensuring that the Spot
21006          * Instances in your Spot Fleet are in different Spot pools, you can improve the
21007          * availability of your fleet.</p> <p>You can specify tags for the Spot Fleet
21008          * request and instances launched by the fleet. You cannot tag other resource types
21009          * in a Spot Fleet request because only the <code>spot-fleet-request</code> and
21010          * <code>instance</code> resource types are supported.</p> <p>For more information,
21011          * see <a
21012          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-requests.html">Spot
21013          * Fleet requests</a> in the <i>Amazon EC2 User Guide for Linux
21014          * Instances</i>.</p><p><h3>See Also:</h3>   <a
21015          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RequestSpotFleet">AWS
21016          * API Reference</a></p>
21017          */
21018         virtual Model::RequestSpotFleetOutcome RequestSpotFleet(const Model::RequestSpotFleetRequest& request) const;
21019 
21020         /**
21021          * <p>Creates a Spot Fleet request.</p> <p>The Spot Fleet request specifies the
21022          * total target capacity and the On-Demand target capacity. Amazon EC2 calculates
21023          * the difference between the total capacity and On-Demand capacity, and launches
21024          * the difference as Spot capacity.</p> <p>You can submit a single request that
21025          * includes multiple launch specifications that vary by instance type, AMI,
21026          * Availability Zone, or subnet.</p> <p>By default, the Spot Fleet requests Spot
21027          * Instances in the Spot Instance pool where the price per unit is the lowest. Each
21028          * launch specification can include its own instance weighting that reflects the
21029          * value of the instance type to your application workload.</p> <p>Alternatively,
21030          * you can specify that the Spot Fleet distribute the target capacity across the
21031          * Spot pools included in its launch specifications. By ensuring that the Spot
21032          * Instances in your Spot Fleet are in different Spot pools, you can improve the
21033          * availability of your fleet.</p> <p>You can specify tags for the Spot Fleet
21034          * request and instances launched by the fleet. You cannot tag other resource types
21035          * in a Spot Fleet request because only the <code>spot-fleet-request</code> and
21036          * <code>instance</code> resource types are supported.</p> <p>For more information,
21037          * see <a
21038          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-requests.html">Spot
21039          * Fleet requests</a> in the <i>Amazon EC2 User Guide for Linux
21040          * Instances</i>.</p><p><h3>See Also:</h3>   <a
21041          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RequestSpotFleet">AWS
21042          * API Reference</a></p>
21043          *
21044          * returns a future to the operation so that it can be executed in parallel to other requests.
21045          */
21046         virtual Model::RequestSpotFleetOutcomeCallable RequestSpotFleetCallable(const Model::RequestSpotFleetRequest& request) const;
21047 
21048         /**
21049          * <p>Creates a Spot Fleet request.</p> <p>The Spot Fleet request specifies the
21050          * total target capacity and the On-Demand target capacity. Amazon EC2 calculates
21051          * the difference between the total capacity and On-Demand capacity, and launches
21052          * the difference as Spot capacity.</p> <p>You can submit a single request that
21053          * includes multiple launch specifications that vary by instance type, AMI,
21054          * Availability Zone, or subnet.</p> <p>By default, the Spot Fleet requests Spot
21055          * Instances in the Spot Instance pool where the price per unit is the lowest. Each
21056          * launch specification can include its own instance weighting that reflects the
21057          * value of the instance type to your application workload.</p> <p>Alternatively,
21058          * you can specify that the Spot Fleet distribute the target capacity across the
21059          * Spot pools included in its launch specifications. By ensuring that the Spot
21060          * Instances in your Spot Fleet are in different Spot pools, you can improve the
21061          * availability of your fleet.</p> <p>You can specify tags for the Spot Fleet
21062          * request and instances launched by the fleet. You cannot tag other resource types
21063          * in a Spot Fleet request because only the <code>spot-fleet-request</code> and
21064          * <code>instance</code> resource types are supported.</p> <p>For more information,
21065          * see <a
21066          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-requests.html">Spot
21067          * Fleet requests</a> in the <i>Amazon EC2 User Guide for Linux
21068          * Instances</i>.</p><p><h3>See Also:</h3>   <a
21069          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RequestSpotFleet">AWS
21070          * API Reference</a></p>
21071          *
21072          * Queues the request into a thread executor and triggers associated callback when operation has finished.
21073          */
21074         virtual void RequestSpotFleetAsync(const Model::RequestSpotFleetRequest& request, const RequestSpotFleetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
21075 
21076         /**
21077          * <p>Creates a Spot Instance request.</p> <p>For more information, see <a
21078          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-requests.html">Spot
21079          * Instance requests</a> in the <i>Amazon EC2 User Guide for Linux
21080          * Instances</i>.</p><p><h3>See Also:</h3>   <a
21081          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RequestSpotInstances">AWS
21082          * API Reference</a></p>
21083          */
21084         virtual Model::RequestSpotInstancesOutcome RequestSpotInstances(const Model::RequestSpotInstancesRequest& request) const;
21085 
21086         /**
21087          * <p>Creates a Spot Instance request.</p> <p>For more information, see <a
21088          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-requests.html">Spot
21089          * Instance requests</a> in the <i>Amazon EC2 User Guide for Linux
21090          * Instances</i>.</p><p><h3>See Also:</h3>   <a
21091          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RequestSpotInstances">AWS
21092          * API Reference</a></p>
21093          *
21094          * returns a future to the operation so that it can be executed in parallel to other requests.
21095          */
21096         virtual Model::RequestSpotInstancesOutcomeCallable RequestSpotInstancesCallable(const Model::RequestSpotInstancesRequest& request) const;
21097 
21098         /**
21099          * <p>Creates a Spot Instance request.</p> <p>For more information, see <a
21100          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-requests.html">Spot
21101          * Instance requests</a> in the <i>Amazon EC2 User Guide for Linux
21102          * Instances</i>.</p><p><h3>See Also:</h3>   <a
21103          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RequestSpotInstances">AWS
21104          * API Reference</a></p>
21105          *
21106          * Queues the request into a thread executor and triggers associated callback when operation has finished.
21107          */
21108         virtual void RequestSpotInstancesAsync(const Model::RequestSpotInstancesRequest& request, const RequestSpotInstancesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
21109 
21110         /**
21111          * <p>Resets the attribute of the specified IP address. For requirements, see <a
21112          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html#Using_Elastic_Addressing_Reverse_DNS">Using
21113          * reverse DNS for email applications</a>.</p><p><h3>See Also:</h3>   <a
21114          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ResetAddressAttribute">AWS
21115          * API Reference</a></p>
21116          */
21117         virtual Model::ResetAddressAttributeOutcome ResetAddressAttribute(const Model::ResetAddressAttributeRequest& request) const;
21118 
21119         /**
21120          * <p>Resets the attribute of the specified IP address. For requirements, see <a
21121          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html#Using_Elastic_Addressing_Reverse_DNS">Using
21122          * reverse DNS for email applications</a>.</p><p><h3>See Also:</h3>   <a
21123          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ResetAddressAttribute">AWS
21124          * API Reference</a></p>
21125          *
21126          * returns a future to the operation so that it can be executed in parallel to other requests.
21127          */
21128         virtual Model::ResetAddressAttributeOutcomeCallable ResetAddressAttributeCallable(const Model::ResetAddressAttributeRequest& request) const;
21129 
21130         /**
21131          * <p>Resets the attribute of the specified IP address. For requirements, see <a
21132          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html#Using_Elastic_Addressing_Reverse_DNS">Using
21133          * reverse DNS for email applications</a>.</p><p><h3>See Also:</h3>   <a
21134          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ResetAddressAttribute">AWS
21135          * API Reference</a></p>
21136          *
21137          * Queues the request into a thread executor and triggers associated callback when operation has finished.
21138          */
21139         virtual void ResetAddressAttributeAsync(const Model::ResetAddressAttributeRequest& request, const ResetAddressAttributeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
21140 
21141         /**
21142          * <p>Resets the default KMS key for EBS encryption for your account in this Region
21143          * to the Amazon Web Services managed KMS key for EBS.</p> <p>After resetting the
21144          * default KMS key to the Amazon Web Services managed KMS key, you can continue to
21145          * encrypt by a customer managed KMS key by specifying it when you create the
21146          * volume. For more information, see <a
21147          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html">Amazon
21148          * EBS encryption</a> in the <i>Amazon Elastic Compute Cloud User
21149          * Guide</i>.</p><p><h3>See Also:</h3>   <a
21150          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ResetEbsDefaultKmsKeyId">AWS
21151          * API Reference</a></p>
21152          */
21153         virtual Model::ResetEbsDefaultKmsKeyIdOutcome ResetEbsDefaultKmsKeyId(const Model::ResetEbsDefaultKmsKeyIdRequest& request) const;
21154 
21155         /**
21156          * <p>Resets the default KMS key for EBS encryption for your account in this Region
21157          * to the Amazon Web Services managed KMS key for EBS.</p> <p>After resetting the
21158          * default KMS key to the Amazon Web Services managed KMS key, you can continue to
21159          * encrypt by a customer managed KMS key by specifying it when you create the
21160          * volume. For more information, see <a
21161          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html">Amazon
21162          * EBS encryption</a> in the <i>Amazon Elastic Compute Cloud User
21163          * Guide</i>.</p><p><h3>See Also:</h3>   <a
21164          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ResetEbsDefaultKmsKeyId">AWS
21165          * API Reference</a></p>
21166          *
21167          * returns a future to the operation so that it can be executed in parallel to other requests.
21168          */
21169         virtual Model::ResetEbsDefaultKmsKeyIdOutcomeCallable ResetEbsDefaultKmsKeyIdCallable(const Model::ResetEbsDefaultKmsKeyIdRequest& request) const;
21170 
21171         /**
21172          * <p>Resets the default KMS key for EBS encryption for your account in this Region
21173          * to the Amazon Web Services managed KMS key for EBS.</p> <p>After resetting the
21174          * default KMS key to the Amazon Web Services managed KMS key, you can continue to
21175          * encrypt by a customer managed KMS key by specifying it when you create the
21176          * volume. For more information, see <a
21177          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html">Amazon
21178          * EBS encryption</a> in the <i>Amazon Elastic Compute Cloud User
21179          * Guide</i>.</p><p><h3>See Also:</h3>   <a
21180          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ResetEbsDefaultKmsKeyId">AWS
21181          * API Reference</a></p>
21182          *
21183          * Queues the request into a thread executor and triggers associated callback when operation has finished.
21184          */
21185         virtual void ResetEbsDefaultKmsKeyIdAsync(const Model::ResetEbsDefaultKmsKeyIdRequest& request, const ResetEbsDefaultKmsKeyIdResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
21186 
21187         /**
21188          * <p>Resets the specified attribute of the specified Amazon FPGA Image (AFI) to
21189          * its default value. You can only reset the load permission
21190          * attribute.</p><p><h3>See Also:</h3>   <a
21191          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ResetFpgaImageAttribute">AWS
21192          * API Reference</a></p>
21193          */
21194         virtual Model::ResetFpgaImageAttributeOutcome ResetFpgaImageAttribute(const Model::ResetFpgaImageAttributeRequest& request) const;
21195 
21196         /**
21197          * <p>Resets the specified attribute of the specified Amazon FPGA Image (AFI) to
21198          * its default value. You can only reset the load permission
21199          * attribute.</p><p><h3>See Also:</h3>   <a
21200          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ResetFpgaImageAttribute">AWS
21201          * API Reference</a></p>
21202          *
21203          * returns a future to the operation so that it can be executed in parallel to other requests.
21204          */
21205         virtual Model::ResetFpgaImageAttributeOutcomeCallable ResetFpgaImageAttributeCallable(const Model::ResetFpgaImageAttributeRequest& request) const;
21206 
21207         /**
21208          * <p>Resets the specified attribute of the specified Amazon FPGA Image (AFI) to
21209          * its default value. You can only reset the load permission
21210          * attribute.</p><p><h3>See Also:</h3>   <a
21211          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ResetFpgaImageAttribute">AWS
21212          * API Reference</a></p>
21213          *
21214          * Queues the request into a thread executor and triggers associated callback when operation has finished.
21215          */
21216         virtual void ResetFpgaImageAttributeAsync(const Model::ResetFpgaImageAttributeRequest& request, const ResetFpgaImageAttributeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
21217 
21218         /**
21219          * <p>Resets an attribute of an AMI to its default value.</p><p><h3>See Also:</h3>
21220          * <a
21221          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ResetImageAttribute">AWS
21222          * API Reference</a></p>
21223          */
21224         virtual Model::ResetImageAttributeOutcome ResetImageAttribute(const Model::ResetImageAttributeRequest& request) const;
21225 
21226         /**
21227          * <p>Resets an attribute of an AMI to its default value.</p><p><h3>See Also:</h3>
21228          * <a
21229          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ResetImageAttribute">AWS
21230          * API Reference</a></p>
21231          *
21232          * returns a future to the operation so that it can be executed in parallel to other requests.
21233          */
21234         virtual Model::ResetImageAttributeOutcomeCallable ResetImageAttributeCallable(const Model::ResetImageAttributeRequest& request) const;
21235 
21236         /**
21237          * <p>Resets an attribute of an AMI to its default value.</p><p><h3>See Also:</h3>
21238          * <a
21239          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ResetImageAttribute">AWS
21240          * API Reference</a></p>
21241          *
21242          * Queues the request into a thread executor and triggers associated callback when operation has finished.
21243          */
21244         virtual void ResetImageAttributeAsync(const Model::ResetImageAttributeRequest& request, const ResetImageAttributeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
21245 
21246         /**
21247          * <p>Resets an attribute of an instance to its default value. To reset the
21248          * <code>kernel</code> or <code>ramdisk</code>, the instance must be in a stopped
21249          * state. To reset the <code>sourceDestCheck</code>, the instance can be either
21250          * running or stopped.</p> <p>The <code>sourceDestCheck</code> attribute controls
21251          * whether source/destination checking is enabled. The default value is
21252          * <code>true</code>, which means checking is enabled. This value must be
21253          * <code>false</code> for a NAT instance to perform NAT. For more information, see
21254          * <a
21255          * href="https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_NAT_Instance.html">NAT
21256          * Instances</a> in the <i>Amazon VPC User Guide</i>.</p><p><h3>See Also:</h3>   <a
21257          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ResetInstanceAttribute">AWS
21258          * API Reference</a></p>
21259          */
21260         virtual Model::ResetInstanceAttributeOutcome ResetInstanceAttribute(const Model::ResetInstanceAttributeRequest& request) const;
21261 
21262         /**
21263          * <p>Resets an attribute of an instance to its default value. To reset the
21264          * <code>kernel</code> or <code>ramdisk</code>, the instance must be in a stopped
21265          * state. To reset the <code>sourceDestCheck</code>, the instance can be either
21266          * running or stopped.</p> <p>The <code>sourceDestCheck</code> attribute controls
21267          * whether source/destination checking is enabled. The default value is
21268          * <code>true</code>, which means checking is enabled. This value must be
21269          * <code>false</code> for a NAT instance to perform NAT. For more information, see
21270          * <a
21271          * href="https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_NAT_Instance.html">NAT
21272          * Instances</a> in the <i>Amazon VPC User Guide</i>.</p><p><h3>See Also:</h3>   <a
21273          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ResetInstanceAttribute">AWS
21274          * API Reference</a></p>
21275          *
21276          * returns a future to the operation so that it can be executed in parallel to other requests.
21277          */
21278         virtual Model::ResetInstanceAttributeOutcomeCallable ResetInstanceAttributeCallable(const Model::ResetInstanceAttributeRequest& request) const;
21279 
21280         /**
21281          * <p>Resets an attribute of an instance to its default value. To reset the
21282          * <code>kernel</code> or <code>ramdisk</code>, the instance must be in a stopped
21283          * state. To reset the <code>sourceDestCheck</code>, the instance can be either
21284          * running or stopped.</p> <p>The <code>sourceDestCheck</code> attribute controls
21285          * whether source/destination checking is enabled. The default value is
21286          * <code>true</code>, which means checking is enabled. This value must be
21287          * <code>false</code> for a NAT instance to perform NAT. For more information, see
21288          * <a
21289          * href="https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_NAT_Instance.html">NAT
21290          * Instances</a> in the <i>Amazon VPC User Guide</i>.</p><p><h3>See Also:</h3>   <a
21291          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ResetInstanceAttribute">AWS
21292          * API Reference</a></p>
21293          *
21294          * Queues the request into a thread executor and triggers associated callback when operation has finished.
21295          */
21296         virtual void ResetInstanceAttributeAsync(const Model::ResetInstanceAttributeRequest& request, const ResetInstanceAttributeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
21297 
21298         /**
21299          * <p>Resets a network interface attribute. You can specify only one attribute at a
21300          * time.</p><p><h3>See Also:</h3>   <a
21301          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ResetNetworkInterfaceAttribute">AWS
21302          * API Reference</a></p>
21303          */
21304         virtual Model::ResetNetworkInterfaceAttributeOutcome ResetNetworkInterfaceAttribute(const Model::ResetNetworkInterfaceAttributeRequest& request) const;
21305 
21306         /**
21307          * <p>Resets a network interface attribute. You can specify only one attribute at a
21308          * time.</p><p><h3>See Also:</h3>   <a
21309          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ResetNetworkInterfaceAttribute">AWS
21310          * API Reference</a></p>
21311          *
21312          * returns a future to the operation so that it can be executed in parallel to other requests.
21313          */
21314         virtual Model::ResetNetworkInterfaceAttributeOutcomeCallable ResetNetworkInterfaceAttributeCallable(const Model::ResetNetworkInterfaceAttributeRequest& request) const;
21315 
21316         /**
21317          * <p>Resets a network interface attribute. You can specify only one attribute at a
21318          * time.</p><p><h3>See Also:</h3>   <a
21319          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ResetNetworkInterfaceAttribute">AWS
21320          * API Reference</a></p>
21321          *
21322          * Queues the request into a thread executor and triggers associated callback when operation has finished.
21323          */
21324         virtual void ResetNetworkInterfaceAttributeAsync(const Model::ResetNetworkInterfaceAttributeRequest& request, const ResetNetworkInterfaceAttributeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
21325 
21326         /**
21327          * <p>Resets permission settings for the specified snapshot.</p> <p>For more
21328          * information about modifying snapshot permissions, see <a
21329          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-modifying-snapshot-permissions.html">Share
21330          * a snapshot</a> in the <i>Amazon Elastic Compute Cloud User
21331          * Guide</i>.</p><p><h3>See Also:</h3>   <a
21332          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ResetSnapshotAttribute">AWS
21333          * API Reference</a></p>
21334          */
21335         virtual Model::ResetSnapshotAttributeOutcome ResetSnapshotAttribute(const Model::ResetSnapshotAttributeRequest& request) const;
21336 
21337         /**
21338          * <p>Resets permission settings for the specified snapshot.</p> <p>For more
21339          * information about modifying snapshot permissions, see <a
21340          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-modifying-snapshot-permissions.html">Share
21341          * a snapshot</a> in the <i>Amazon Elastic Compute Cloud User
21342          * Guide</i>.</p><p><h3>See Also:</h3>   <a
21343          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ResetSnapshotAttribute">AWS
21344          * API Reference</a></p>
21345          *
21346          * returns a future to the operation so that it can be executed in parallel to other requests.
21347          */
21348         virtual Model::ResetSnapshotAttributeOutcomeCallable ResetSnapshotAttributeCallable(const Model::ResetSnapshotAttributeRequest& request) const;
21349 
21350         /**
21351          * <p>Resets permission settings for the specified snapshot.</p> <p>For more
21352          * information about modifying snapshot permissions, see <a
21353          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-modifying-snapshot-permissions.html">Share
21354          * a snapshot</a> in the <i>Amazon Elastic Compute Cloud User
21355          * Guide</i>.</p><p><h3>See Also:</h3>   <a
21356          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ResetSnapshotAttribute">AWS
21357          * API Reference</a></p>
21358          *
21359          * Queues the request into a thread executor and triggers associated callback when operation has finished.
21360          */
21361         virtual void ResetSnapshotAttributeAsync(const Model::ResetSnapshotAttributeRequest& request, const ResetSnapshotAttributeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
21362 
21363         /**
21364          * <p>Restores an Elastic IP address that was previously moved to the EC2-VPC
21365          * platform back to the EC2-Classic platform. You cannot move an Elastic IP address
21366          * that was originally allocated for use in EC2-VPC. The Elastic IP address must
21367          * not be associated with an instance or network interface.</p><p><h3>See
21368          * Also:</h3>   <a
21369          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RestoreAddressToClassic">AWS
21370          * API Reference</a></p>
21371          */
21372         virtual Model::RestoreAddressToClassicOutcome RestoreAddressToClassic(const Model::RestoreAddressToClassicRequest& request) const;
21373 
21374         /**
21375          * <p>Restores an Elastic IP address that was previously moved to the EC2-VPC
21376          * platform back to the EC2-Classic platform. You cannot move an Elastic IP address
21377          * that was originally allocated for use in EC2-VPC. The Elastic IP address must
21378          * not be associated with an instance or network interface.</p><p><h3>See
21379          * Also:</h3>   <a
21380          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RestoreAddressToClassic">AWS
21381          * API Reference</a></p>
21382          *
21383          * returns a future to the operation so that it can be executed in parallel to other requests.
21384          */
21385         virtual Model::RestoreAddressToClassicOutcomeCallable RestoreAddressToClassicCallable(const Model::RestoreAddressToClassicRequest& request) const;
21386 
21387         /**
21388          * <p>Restores an Elastic IP address that was previously moved to the EC2-VPC
21389          * platform back to the EC2-Classic platform. You cannot move an Elastic IP address
21390          * that was originally allocated for use in EC2-VPC. The Elastic IP address must
21391          * not be associated with an instance or network interface.</p><p><h3>See
21392          * Also:</h3>   <a
21393          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RestoreAddressToClassic">AWS
21394          * API Reference</a></p>
21395          *
21396          * Queues the request into a thread executor and triggers associated callback when operation has finished.
21397          */
21398         virtual void RestoreAddressToClassicAsync(const Model::RestoreAddressToClassicRequest& request, const RestoreAddressToClassicResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
21399 
21400         /**
21401          * <p>Restores the entries from a previous version of a managed prefix list to a
21402          * new version of the prefix list.</p><p><h3>See Also:</h3>   <a
21403          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RestoreManagedPrefixListVersion">AWS
21404          * API Reference</a></p>
21405          */
21406         virtual Model::RestoreManagedPrefixListVersionOutcome RestoreManagedPrefixListVersion(const Model::RestoreManagedPrefixListVersionRequest& request) const;
21407 
21408         /**
21409          * <p>Restores the entries from a previous version of a managed prefix list to a
21410          * new version of the prefix list.</p><p><h3>See Also:</h3>   <a
21411          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RestoreManagedPrefixListVersion">AWS
21412          * API Reference</a></p>
21413          *
21414          * returns a future to the operation so that it can be executed in parallel to other requests.
21415          */
21416         virtual Model::RestoreManagedPrefixListVersionOutcomeCallable RestoreManagedPrefixListVersionCallable(const Model::RestoreManagedPrefixListVersionRequest& request) const;
21417 
21418         /**
21419          * <p>Restores the entries from a previous version of a managed prefix list to a
21420          * new version of the prefix list.</p><p><h3>See Also:</h3>   <a
21421          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RestoreManagedPrefixListVersion">AWS
21422          * API Reference</a></p>
21423          *
21424          * Queues the request into a thread executor and triggers associated callback when operation has finished.
21425          */
21426         virtual void RestoreManagedPrefixListVersionAsync(const Model::RestoreManagedPrefixListVersionRequest& request, const RestoreManagedPrefixListVersionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
21427 
21428         /**
21429          * <p>Removes an ingress authorization rule from a Client VPN endpoint.
21430          * </p><p><h3>See Also:</h3>   <a
21431          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RevokeClientVpnIngress">AWS
21432          * API Reference</a></p>
21433          */
21434         virtual Model::RevokeClientVpnIngressOutcome RevokeClientVpnIngress(const Model::RevokeClientVpnIngressRequest& request) const;
21435 
21436         /**
21437          * <p>Removes an ingress authorization rule from a Client VPN endpoint.
21438          * </p><p><h3>See Also:</h3>   <a
21439          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RevokeClientVpnIngress">AWS
21440          * API Reference</a></p>
21441          *
21442          * returns a future to the operation so that it can be executed in parallel to other requests.
21443          */
21444         virtual Model::RevokeClientVpnIngressOutcomeCallable RevokeClientVpnIngressCallable(const Model::RevokeClientVpnIngressRequest& request) const;
21445 
21446         /**
21447          * <p>Removes an ingress authorization rule from a Client VPN endpoint.
21448          * </p><p><h3>See Also:</h3>   <a
21449          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RevokeClientVpnIngress">AWS
21450          * API Reference</a></p>
21451          *
21452          * Queues the request into a thread executor and triggers associated callback when operation has finished.
21453          */
21454         virtual void RevokeClientVpnIngressAsync(const Model::RevokeClientVpnIngressRequest& request, const RevokeClientVpnIngressResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
21455 
21456         /**
21457          * <p>[VPC only] Removes the specified outbound (egress) rules from a security
21458          * group for EC2-VPC. This action does not apply to security groups for use in
21459          * EC2-Classic.</p> <p>You can specify rules using either rule IDs or security
21460          * group rule properties. If you use rule properties, the values that you specify
21461          * (for example, ports) must match the existing rule's values exactly. Each rule
21462          * has a protocol, from and to ports, and destination (CIDR range, security group,
21463          * or prefix list). For the TCP and UDP protocols, you must also specify the
21464          * destination port or range of ports. For the ICMP protocol, you must also specify
21465          * the ICMP type and code. If the security group rule has a description, you do not
21466          * need to specify the description to revoke the rule.</p> <p>[Default VPC] If the
21467          * values you specify do not match the existing rule's values, no error is
21468          * returned, and the output describes the security group rules that were not
21469          * revoked.</p> <p>Amazon Web Services recommends that you describe the security
21470          * group to verify that the rules were removed.</p> <p>Rule changes are propagated
21471          * to instances within the security group as quickly as possible. However, a small
21472          * delay might occur.</p><p><h3>See Also:</h3>   <a
21473          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RevokeSecurityGroupEgress">AWS
21474          * API Reference</a></p>
21475          */
21476         virtual Model::RevokeSecurityGroupEgressOutcome RevokeSecurityGroupEgress(const Model::RevokeSecurityGroupEgressRequest& request) const;
21477 
21478         /**
21479          * <p>[VPC only] Removes the specified outbound (egress) rules from a security
21480          * group for EC2-VPC. This action does not apply to security groups for use in
21481          * EC2-Classic.</p> <p>You can specify rules using either rule IDs or security
21482          * group rule properties. If you use rule properties, the values that you specify
21483          * (for example, ports) must match the existing rule's values exactly. Each rule
21484          * has a protocol, from and to ports, and destination (CIDR range, security group,
21485          * or prefix list). For the TCP and UDP protocols, you must also specify the
21486          * destination port or range of ports. For the ICMP protocol, you must also specify
21487          * the ICMP type and code. If the security group rule has a description, you do not
21488          * need to specify the description to revoke the rule.</p> <p>[Default VPC] If the
21489          * values you specify do not match the existing rule's values, no error is
21490          * returned, and the output describes the security group rules that were not
21491          * revoked.</p> <p>Amazon Web Services recommends that you describe the security
21492          * group to verify that the rules were removed.</p> <p>Rule changes are propagated
21493          * to instances within the security group as quickly as possible. However, a small
21494          * delay might occur.</p><p><h3>See Also:</h3>   <a
21495          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RevokeSecurityGroupEgress">AWS
21496          * API Reference</a></p>
21497          *
21498          * returns a future to the operation so that it can be executed in parallel to other requests.
21499          */
21500         virtual Model::RevokeSecurityGroupEgressOutcomeCallable RevokeSecurityGroupEgressCallable(const Model::RevokeSecurityGroupEgressRequest& request) const;
21501 
21502         /**
21503          * <p>[VPC only] Removes the specified outbound (egress) rules from a security
21504          * group for EC2-VPC. This action does not apply to security groups for use in
21505          * EC2-Classic.</p> <p>You can specify rules using either rule IDs or security
21506          * group rule properties. If you use rule properties, the values that you specify
21507          * (for example, ports) must match the existing rule's values exactly. Each rule
21508          * has a protocol, from and to ports, and destination (CIDR range, security group,
21509          * or prefix list). For the TCP and UDP protocols, you must also specify the
21510          * destination port or range of ports. For the ICMP protocol, you must also specify
21511          * the ICMP type and code. If the security group rule has a description, you do not
21512          * need to specify the description to revoke the rule.</p> <p>[Default VPC] If the
21513          * values you specify do not match the existing rule's values, no error is
21514          * returned, and the output describes the security group rules that were not
21515          * revoked.</p> <p>Amazon Web Services recommends that you describe the security
21516          * group to verify that the rules were removed.</p> <p>Rule changes are propagated
21517          * to instances within the security group as quickly as possible. However, a small
21518          * delay might occur.</p><p><h3>See Also:</h3>   <a
21519          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RevokeSecurityGroupEgress">AWS
21520          * API Reference</a></p>
21521          *
21522          * Queues the request into a thread executor and triggers associated callback when operation has finished.
21523          */
21524         virtual void RevokeSecurityGroupEgressAsync(const Model::RevokeSecurityGroupEgressRequest& request, const RevokeSecurityGroupEgressResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
21525 
21526         /**
21527          * <p>Removes the specified inbound (ingress) rules from a security group.</p>
21528          * <p>You can specify rules using either rule IDs or security group rule
21529          * properties. If you use rule properties, the values that you specify (for
21530          * example, ports) must match the existing rule's values exactly. Each rule has a
21531          * protocol, from and to ports, and source (CIDR range, security group, or prefix
21532          * list). For the TCP and UDP protocols, you must also specify the destination port
21533          * or range of ports. For the ICMP protocol, you must also specify the ICMP type
21534          * and code. If the security group rule has a description, you do not need to
21535          * specify the description to revoke the rule.</p> <p>[EC2-Classic, default VPC] If
21536          * the values you specify do not match the existing rule's values, no error is
21537          * returned, and the output describes the security group rules that were not
21538          * revoked.</p> <p>Amazon Web Services recommends that you describe the security
21539          * group to verify that the rules were removed.</p> <p>Rule changes are propagated
21540          * to instances within the security group as quickly as possible. However, a small
21541          * delay might occur.</p><p><h3>See Also:</h3>   <a
21542          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RevokeSecurityGroupIngress">AWS
21543          * API Reference</a></p>
21544          */
21545         virtual Model::RevokeSecurityGroupIngressOutcome RevokeSecurityGroupIngress(const Model::RevokeSecurityGroupIngressRequest& request) const;
21546 
21547         /**
21548          * <p>Removes the specified inbound (ingress) rules from a security group.</p>
21549          * <p>You can specify rules using either rule IDs or security group rule
21550          * properties. If you use rule properties, the values that you specify (for
21551          * example, ports) must match the existing rule's values exactly. Each rule has a
21552          * protocol, from and to ports, and source (CIDR range, security group, or prefix
21553          * list). For the TCP and UDP protocols, you must also specify the destination port
21554          * or range of ports. For the ICMP protocol, you must also specify the ICMP type
21555          * and code. If the security group rule has a description, you do not need to
21556          * specify the description to revoke the rule.</p> <p>[EC2-Classic, default VPC] If
21557          * the values you specify do not match the existing rule's values, no error is
21558          * returned, and the output describes the security group rules that were not
21559          * revoked.</p> <p>Amazon Web Services recommends that you describe the security
21560          * group to verify that the rules were removed.</p> <p>Rule changes are propagated
21561          * to instances within the security group as quickly as possible. However, a small
21562          * delay might occur.</p><p><h3>See Also:</h3>   <a
21563          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RevokeSecurityGroupIngress">AWS
21564          * API Reference</a></p>
21565          *
21566          * returns a future to the operation so that it can be executed in parallel to other requests.
21567          */
21568         virtual Model::RevokeSecurityGroupIngressOutcomeCallable RevokeSecurityGroupIngressCallable(const Model::RevokeSecurityGroupIngressRequest& request) const;
21569 
21570         /**
21571          * <p>Removes the specified inbound (ingress) rules from a security group.</p>
21572          * <p>You can specify rules using either rule IDs or security group rule
21573          * properties. If you use rule properties, the values that you specify (for
21574          * example, ports) must match the existing rule's values exactly. Each rule has a
21575          * protocol, from and to ports, and source (CIDR range, security group, or prefix
21576          * list). For the TCP and UDP protocols, you must also specify the destination port
21577          * or range of ports. For the ICMP protocol, you must also specify the ICMP type
21578          * and code. If the security group rule has a description, you do not need to
21579          * specify the description to revoke the rule.</p> <p>[EC2-Classic, default VPC] If
21580          * the values you specify do not match the existing rule's values, no error is
21581          * returned, and the output describes the security group rules that were not
21582          * revoked.</p> <p>Amazon Web Services recommends that you describe the security
21583          * group to verify that the rules were removed.</p> <p>Rule changes are propagated
21584          * to instances within the security group as quickly as possible. However, a small
21585          * delay might occur.</p><p><h3>See Also:</h3>   <a
21586          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RevokeSecurityGroupIngress">AWS
21587          * API Reference</a></p>
21588          *
21589          * Queues the request into a thread executor and triggers associated callback when operation has finished.
21590          */
21591         virtual void RevokeSecurityGroupIngressAsync(const Model::RevokeSecurityGroupIngressRequest& request, const RevokeSecurityGroupIngressResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
21592 
21593         /**
21594          * <p>Launches the specified number of instances using an AMI for which you have
21595          * permissions.</p> <p>You can specify a number of options, or leave the default
21596          * options. The following rules apply:</p> <ul> <li> <p>[EC2-VPC] If you don't
21597          * specify a subnet ID, we choose a default subnet from your default VPC for you.
21598          * If you don't have a default VPC, you must specify a subnet ID in the
21599          * request.</p> </li> <li> <p>[EC2-Classic] If don't specify an Availability Zone,
21600          * we choose one for you.</p> </li> <li> <p>Some instance types must be launched
21601          * into a VPC. If you do not have a default VPC, or if you do not specify a subnet
21602          * ID, the request fails. For more information, see <a
21603          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-vpc.html#vpc-only-instance-types">Instance
21604          * types available only in a VPC</a>.</p> </li> <li> <p>[EC2-VPC] All instances
21605          * have a network interface with a primary private IPv4 address. If you don't
21606          * specify this address, we choose one from the IPv4 range of your subnet.</p>
21607          * </li> <li> <p>Not all instance types support IPv6 addresses. For more
21608          * information, see <a
21609          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html">Instance
21610          * types</a>.</p> </li> <li> <p>If you don't specify a security group ID, we use
21611          * the default security group. For more information, see <a
21612          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html">Security
21613          * groups</a>.</p> </li> <li> <p>If any of the AMIs have a product code attached
21614          * for which the user has not subscribed, the request fails.</p> </li> </ul> <p>You
21615          * can create a <a
21616          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html">launch
21617          * template</a>, which is a resource that contains the parameters to launch an
21618          * instance. When you launch an instance using <a>RunInstances</a>, you can specify
21619          * the launch template instead of specifying the launch parameters.</p> <p>To
21620          * ensure faster instance launches, break up large requests into smaller batches.
21621          * For example, create five separate launch requests for 100 instances each instead
21622          * of one launch request for 500 instances.</p> <p>An instance is ready for you to
21623          * use when it's in the <code>running</code> state. You can check the state of your
21624          * instance using <a>DescribeInstances</a>. You can tag instances and EBS volumes
21625          * during launch, after launch, or both. For more information, see
21626          * <a>CreateTags</a> and <a
21627          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html">Tagging
21628          * your Amazon EC2 resources</a>.</p> <p>Linux instances have access to the public
21629          * key of the key pair at boot. You can use this key to provide secure access to
21630          * the instance. Amazon EC2 public images use this feature to provide secure access
21631          * without passwords. For more information, see <a
21632          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html">Key
21633          * pairs</a>.</p> <p>For troubleshooting, see <a
21634          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_InstanceStraightToTerminated.html">What
21635          * to do if an instance immediately terminates</a>, and <a
21636          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/TroubleshootingInstancesConnecting.html">Troubleshooting
21637          * connecting to your instance</a>.</p><p><h3>See Also:</h3>   <a
21638          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RunInstances">AWS
21639          * API Reference</a></p>
21640          */
21641         virtual Model::RunInstancesOutcome RunInstances(const Model::RunInstancesRequest& request) const;
21642 
21643         /**
21644          * <p>Launches the specified number of instances using an AMI for which you have
21645          * permissions.</p> <p>You can specify a number of options, or leave the default
21646          * options. The following rules apply:</p> <ul> <li> <p>[EC2-VPC] If you don't
21647          * specify a subnet ID, we choose a default subnet from your default VPC for you.
21648          * If you don't have a default VPC, you must specify a subnet ID in the
21649          * request.</p> </li> <li> <p>[EC2-Classic] If don't specify an Availability Zone,
21650          * we choose one for you.</p> </li> <li> <p>Some instance types must be launched
21651          * into a VPC. If you do not have a default VPC, or if you do not specify a subnet
21652          * ID, the request fails. For more information, see <a
21653          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-vpc.html#vpc-only-instance-types">Instance
21654          * types available only in a VPC</a>.</p> </li> <li> <p>[EC2-VPC] All instances
21655          * have a network interface with a primary private IPv4 address. If you don't
21656          * specify this address, we choose one from the IPv4 range of your subnet.</p>
21657          * </li> <li> <p>Not all instance types support IPv6 addresses. For more
21658          * information, see <a
21659          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html">Instance
21660          * types</a>.</p> </li> <li> <p>If you don't specify a security group ID, we use
21661          * the default security group. For more information, see <a
21662          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html">Security
21663          * groups</a>.</p> </li> <li> <p>If any of the AMIs have a product code attached
21664          * for which the user has not subscribed, the request fails.</p> </li> </ul> <p>You
21665          * can create a <a
21666          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html">launch
21667          * template</a>, which is a resource that contains the parameters to launch an
21668          * instance. When you launch an instance using <a>RunInstances</a>, you can specify
21669          * the launch template instead of specifying the launch parameters.</p> <p>To
21670          * ensure faster instance launches, break up large requests into smaller batches.
21671          * For example, create five separate launch requests for 100 instances each instead
21672          * of one launch request for 500 instances.</p> <p>An instance is ready for you to
21673          * use when it's in the <code>running</code> state. You can check the state of your
21674          * instance using <a>DescribeInstances</a>. You can tag instances and EBS volumes
21675          * during launch, after launch, or both. For more information, see
21676          * <a>CreateTags</a> and <a
21677          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html">Tagging
21678          * your Amazon EC2 resources</a>.</p> <p>Linux instances have access to the public
21679          * key of the key pair at boot. You can use this key to provide secure access to
21680          * the instance. Amazon EC2 public images use this feature to provide secure access
21681          * without passwords. For more information, see <a
21682          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html">Key
21683          * pairs</a>.</p> <p>For troubleshooting, see <a
21684          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_InstanceStraightToTerminated.html">What
21685          * to do if an instance immediately terminates</a>, and <a
21686          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/TroubleshootingInstancesConnecting.html">Troubleshooting
21687          * connecting to your instance</a>.</p><p><h3>See Also:</h3>   <a
21688          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RunInstances">AWS
21689          * API Reference</a></p>
21690          *
21691          * returns a future to the operation so that it can be executed in parallel to other requests.
21692          */
21693         virtual Model::RunInstancesOutcomeCallable RunInstancesCallable(const Model::RunInstancesRequest& request) const;
21694 
21695         /**
21696          * <p>Launches the specified number of instances using an AMI for which you have
21697          * permissions.</p> <p>You can specify a number of options, or leave the default
21698          * options. The following rules apply:</p> <ul> <li> <p>[EC2-VPC] If you don't
21699          * specify a subnet ID, we choose a default subnet from your default VPC for you.
21700          * If you don't have a default VPC, you must specify a subnet ID in the
21701          * request.</p> </li> <li> <p>[EC2-Classic] If don't specify an Availability Zone,
21702          * we choose one for you.</p> </li> <li> <p>Some instance types must be launched
21703          * into a VPC. If you do not have a default VPC, or if you do not specify a subnet
21704          * ID, the request fails. For more information, see <a
21705          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-vpc.html#vpc-only-instance-types">Instance
21706          * types available only in a VPC</a>.</p> </li> <li> <p>[EC2-VPC] All instances
21707          * have a network interface with a primary private IPv4 address. If you don't
21708          * specify this address, we choose one from the IPv4 range of your subnet.</p>
21709          * </li> <li> <p>Not all instance types support IPv6 addresses. For more
21710          * information, see <a
21711          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html">Instance
21712          * types</a>.</p> </li> <li> <p>If you don't specify a security group ID, we use
21713          * the default security group. For more information, see <a
21714          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html">Security
21715          * groups</a>.</p> </li> <li> <p>If any of the AMIs have a product code attached
21716          * for which the user has not subscribed, the request fails.</p> </li> </ul> <p>You
21717          * can create a <a
21718          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html">launch
21719          * template</a>, which is a resource that contains the parameters to launch an
21720          * instance. When you launch an instance using <a>RunInstances</a>, you can specify
21721          * the launch template instead of specifying the launch parameters.</p> <p>To
21722          * ensure faster instance launches, break up large requests into smaller batches.
21723          * For example, create five separate launch requests for 100 instances each instead
21724          * of one launch request for 500 instances.</p> <p>An instance is ready for you to
21725          * use when it's in the <code>running</code> state. You can check the state of your
21726          * instance using <a>DescribeInstances</a>. You can tag instances and EBS volumes
21727          * during launch, after launch, or both. For more information, see
21728          * <a>CreateTags</a> and <a
21729          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html">Tagging
21730          * your Amazon EC2 resources</a>.</p> <p>Linux instances have access to the public
21731          * key of the key pair at boot. You can use this key to provide secure access to
21732          * the instance. Amazon EC2 public images use this feature to provide secure access
21733          * without passwords. For more information, see <a
21734          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html">Key
21735          * pairs</a>.</p> <p>For troubleshooting, see <a
21736          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_InstanceStraightToTerminated.html">What
21737          * to do if an instance immediately terminates</a>, and <a
21738          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/TroubleshootingInstancesConnecting.html">Troubleshooting
21739          * connecting to your instance</a>.</p><p><h3>See Also:</h3>   <a
21740          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RunInstances">AWS
21741          * API Reference</a></p>
21742          *
21743          * Queues the request into a thread executor and triggers associated callback when operation has finished.
21744          */
21745         virtual void RunInstancesAsync(const Model::RunInstancesRequest& request, const RunInstancesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
21746 
21747         /**
21748          * <p>Launches the specified Scheduled Instances.</p> <p>Before you can launch a
21749          * Scheduled Instance, you must purchase it and obtain an identifier using
21750          * <a>PurchaseScheduledInstances</a>.</p> <p>You must launch a Scheduled Instance
21751          * during its scheduled time period. You can't stop or reboot a Scheduled Instance,
21752          * but you can terminate it as needed. If you terminate a Scheduled Instance before
21753          * the current scheduled time period ends, you can launch it again after a few
21754          * minutes. For more information, see <a
21755          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-scheduled-instances.html">Scheduled
21756          * Instances</a> in the <i>Amazon EC2 User Guide</i>.</p><p><h3>See Also:</h3>   <a
21757          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RunScheduledInstances">AWS
21758          * API Reference</a></p>
21759          */
21760         virtual Model::RunScheduledInstancesOutcome RunScheduledInstances(const Model::RunScheduledInstancesRequest& request) const;
21761 
21762         /**
21763          * <p>Launches the specified Scheduled Instances.</p> <p>Before you can launch a
21764          * Scheduled Instance, you must purchase it and obtain an identifier using
21765          * <a>PurchaseScheduledInstances</a>.</p> <p>You must launch a Scheduled Instance
21766          * during its scheduled time period. You can't stop or reboot a Scheduled Instance,
21767          * but you can terminate it as needed. If you terminate a Scheduled Instance before
21768          * the current scheduled time period ends, you can launch it again after a few
21769          * minutes. For more information, see <a
21770          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-scheduled-instances.html">Scheduled
21771          * Instances</a> in the <i>Amazon EC2 User Guide</i>.</p><p><h3>See Also:</h3>   <a
21772          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RunScheduledInstances">AWS
21773          * API Reference</a></p>
21774          *
21775          * returns a future to the operation so that it can be executed in parallel to other requests.
21776          */
21777         virtual Model::RunScheduledInstancesOutcomeCallable RunScheduledInstancesCallable(const Model::RunScheduledInstancesRequest& request) const;
21778 
21779         /**
21780          * <p>Launches the specified Scheduled Instances.</p> <p>Before you can launch a
21781          * Scheduled Instance, you must purchase it and obtain an identifier using
21782          * <a>PurchaseScheduledInstances</a>.</p> <p>You must launch a Scheduled Instance
21783          * during its scheduled time period. You can't stop or reboot a Scheduled Instance,
21784          * but you can terminate it as needed. If you terminate a Scheduled Instance before
21785          * the current scheduled time period ends, you can launch it again after a few
21786          * minutes. For more information, see <a
21787          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-scheduled-instances.html">Scheduled
21788          * Instances</a> in the <i>Amazon EC2 User Guide</i>.</p><p><h3>See Also:</h3>   <a
21789          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RunScheduledInstances">AWS
21790          * API Reference</a></p>
21791          *
21792          * Queues the request into a thread executor and triggers associated callback when operation has finished.
21793          */
21794         virtual void RunScheduledInstancesAsync(const Model::RunScheduledInstancesRequest& request, const RunScheduledInstancesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
21795 
21796         /**
21797          * <p>Searches for routes in the specified local gateway route table.</p><p><h3>See
21798          * Also:</h3>   <a
21799          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/SearchLocalGatewayRoutes">AWS
21800          * API Reference</a></p>
21801          */
21802         virtual Model::SearchLocalGatewayRoutesOutcome SearchLocalGatewayRoutes(const Model::SearchLocalGatewayRoutesRequest& request) const;
21803 
21804         /**
21805          * <p>Searches for routes in the specified local gateway route table.</p><p><h3>See
21806          * Also:</h3>   <a
21807          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/SearchLocalGatewayRoutes">AWS
21808          * API Reference</a></p>
21809          *
21810          * returns a future to the operation so that it can be executed in parallel to other requests.
21811          */
21812         virtual Model::SearchLocalGatewayRoutesOutcomeCallable SearchLocalGatewayRoutesCallable(const Model::SearchLocalGatewayRoutesRequest& request) const;
21813 
21814         /**
21815          * <p>Searches for routes in the specified local gateway route table.</p><p><h3>See
21816          * Also:</h3>   <a
21817          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/SearchLocalGatewayRoutes">AWS
21818          * API Reference</a></p>
21819          *
21820          * Queues the request into a thread executor and triggers associated callback when operation has finished.
21821          */
21822         virtual void SearchLocalGatewayRoutesAsync(const Model::SearchLocalGatewayRoutesRequest& request, const SearchLocalGatewayRoutesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
21823 
21824         /**
21825          * <p>Searches one or more transit gateway multicast groups and returns the group
21826          * membership information.</p><p><h3>See Also:</h3>   <a
21827          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/SearchTransitGatewayMulticastGroups">AWS
21828          * API Reference</a></p>
21829          */
21830         virtual Model::SearchTransitGatewayMulticastGroupsOutcome SearchTransitGatewayMulticastGroups(const Model::SearchTransitGatewayMulticastGroupsRequest& request) const;
21831 
21832         /**
21833          * <p>Searches one or more transit gateway multicast groups and returns the group
21834          * membership information.</p><p><h3>See Also:</h3>   <a
21835          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/SearchTransitGatewayMulticastGroups">AWS
21836          * API Reference</a></p>
21837          *
21838          * returns a future to the operation so that it can be executed in parallel to other requests.
21839          */
21840         virtual Model::SearchTransitGatewayMulticastGroupsOutcomeCallable SearchTransitGatewayMulticastGroupsCallable(const Model::SearchTransitGatewayMulticastGroupsRequest& request) const;
21841 
21842         /**
21843          * <p>Searches one or more transit gateway multicast groups and returns the group
21844          * membership information.</p><p><h3>See Also:</h3>   <a
21845          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/SearchTransitGatewayMulticastGroups">AWS
21846          * API Reference</a></p>
21847          *
21848          * Queues the request into a thread executor and triggers associated callback when operation has finished.
21849          */
21850         virtual void SearchTransitGatewayMulticastGroupsAsync(const Model::SearchTransitGatewayMulticastGroupsRequest& request, const SearchTransitGatewayMulticastGroupsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
21851 
21852         /**
21853          * <p>Searches for routes in the specified transit gateway route
21854          * table.</p><p><h3>See Also:</h3>   <a
21855          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/SearchTransitGatewayRoutes">AWS
21856          * API Reference</a></p>
21857          */
21858         virtual Model::SearchTransitGatewayRoutesOutcome SearchTransitGatewayRoutes(const Model::SearchTransitGatewayRoutesRequest& request) const;
21859 
21860         /**
21861          * <p>Searches for routes in the specified transit gateway route
21862          * table.</p><p><h3>See Also:</h3>   <a
21863          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/SearchTransitGatewayRoutes">AWS
21864          * API Reference</a></p>
21865          *
21866          * returns a future to the operation so that it can be executed in parallel to other requests.
21867          */
21868         virtual Model::SearchTransitGatewayRoutesOutcomeCallable SearchTransitGatewayRoutesCallable(const Model::SearchTransitGatewayRoutesRequest& request) const;
21869 
21870         /**
21871          * <p>Searches for routes in the specified transit gateway route
21872          * table.</p><p><h3>See Also:</h3>   <a
21873          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/SearchTransitGatewayRoutes">AWS
21874          * API Reference</a></p>
21875          *
21876          * Queues the request into a thread executor and triggers associated callback when operation has finished.
21877          */
21878         virtual void SearchTransitGatewayRoutesAsync(const Model::SearchTransitGatewayRoutesRequest& request, const SearchTransitGatewayRoutesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
21879 
21880         /**
21881          * <p>Sends a diagnostic interrupt to the specified Amazon EC2 instance to trigger
21882          * a <i>kernel panic</i> (on Linux instances), or a <i>blue screen</i>/<i>stop
21883          * error</i> (on Windows instances). For instances based on Intel and AMD
21884          * processors, the interrupt is received as a <i>non-maskable interrupt</i>
21885          * (NMI).</p> <p>In general, the operating system crashes and reboots when a kernel
21886          * panic or stop error is triggered. The operating system can also be configured to
21887          * perform diagnostic tasks, such as generating a memory dump file, loading a
21888          * secondary kernel, or obtaining a call trace.</p> <p>Before sending a diagnostic
21889          * interrupt to your instance, ensure that its operating system is configured to
21890          * perform the required diagnostic tasks.</p> <p>For more information about
21891          * configuring your operating system to generate a crash dump when a kernel panic
21892          * or stop error occurs, see <a
21893          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/diagnostic-interrupt.html">Send
21894          * a diagnostic interrupt</a> (Linux instances) or <a
21895          * href="https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/diagnostic-interrupt.html">Send
21896          * a Diagnostic Interrupt</a> (Windows instances).</p><p><h3>See Also:</h3>   <a
21897          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/SendDiagnosticInterrupt">AWS
21898          * API Reference</a></p>
21899          */
21900         virtual Model::SendDiagnosticInterruptOutcome SendDiagnosticInterrupt(const Model::SendDiagnosticInterruptRequest& request) const;
21901 
21902         /**
21903          * <p>Sends a diagnostic interrupt to the specified Amazon EC2 instance to trigger
21904          * a <i>kernel panic</i> (on Linux instances), or a <i>blue screen</i>/<i>stop
21905          * error</i> (on Windows instances). For instances based on Intel and AMD
21906          * processors, the interrupt is received as a <i>non-maskable interrupt</i>
21907          * (NMI).</p> <p>In general, the operating system crashes and reboots when a kernel
21908          * panic or stop error is triggered. The operating system can also be configured to
21909          * perform diagnostic tasks, such as generating a memory dump file, loading a
21910          * secondary kernel, or obtaining a call trace.</p> <p>Before sending a diagnostic
21911          * interrupt to your instance, ensure that its operating system is configured to
21912          * perform the required diagnostic tasks.</p> <p>For more information about
21913          * configuring your operating system to generate a crash dump when a kernel panic
21914          * or stop error occurs, see <a
21915          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/diagnostic-interrupt.html">Send
21916          * a diagnostic interrupt</a> (Linux instances) or <a
21917          * href="https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/diagnostic-interrupt.html">Send
21918          * a Diagnostic Interrupt</a> (Windows instances).</p><p><h3>See Also:</h3>   <a
21919          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/SendDiagnosticInterrupt">AWS
21920          * API Reference</a></p>
21921          *
21922          * returns a future to the operation so that it can be executed in parallel to other requests.
21923          */
21924         virtual Model::SendDiagnosticInterruptOutcomeCallable SendDiagnosticInterruptCallable(const Model::SendDiagnosticInterruptRequest& request) const;
21925 
21926         /**
21927          * <p>Sends a diagnostic interrupt to the specified Amazon EC2 instance to trigger
21928          * a <i>kernel panic</i> (on Linux instances), or a <i>blue screen</i>/<i>stop
21929          * error</i> (on Windows instances). For instances based on Intel and AMD
21930          * processors, the interrupt is received as a <i>non-maskable interrupt</i>
21931          * (NMI).</p> <p>In general, the operating system crashes and reboots when a kernel
21932          * panic or stop error is triggered. The operating system can also be configured to
21933          * perform diagnostic tasks, such as generating a memory dump file, loading a
21934          * secondary kernel, or obtaining a call trace.</p> <p>Before sending a diagnostic
21935          * interrupt to your instance, ensure that its operating system is configured to
21936          * perform the required diagnostic tasks.</p> <p>For more information about
21937          * configuring your operating system to generate a crash dump when a kernel panic
21938          * or stop error occurs, see <a
21939          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/diagnostic-interrupt.html">Send
21940          * a diagnostic interrupt</a> (Linux instances) or <a
21941          * href="https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/diagnostic-interrupt.html">Send
21942          * a Diagnostic Interrupt</a> (Windows instances).</p><p><h3>See Also:</h3>   <a
21943          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/SendDiagnosticInterrupt">AWS
21944          * API Reference</a></p>
21945          *
21946          * Queues the request into a thread executor and triggers associated callback when operation has finished.
21947          */
21948         virtual void SendDiagnosticInterruptAsync(const Model::SendDiagnosticInterruptRequest& request, const SendDiagnosticInterruptResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
21949 
21950         /**
21951          * <p>Starts an Amazon EBS-backed instance that you've previously stopped.</p>
21952          * <p>Instances that use Amazon EBS volumes as their root devices can be quickly
21953          * stopped and started. When an instance is stopped, the compute resources are
21954          * released and you are not billed for instance usage. However, your root partition
21955          * Amazon EBS volume remains and continues to persist your data, and you are
21956          * charged for Amazon EBS volume usage. You can restart your instance at any time.
21957          * Every time you start your instance, Amazon EC2 charges a one-minute minimum for
21958          * instance usage, and thereafter charges per second for instance usage.</p>
21959          * <p>Before stopping an instance, make sure it is in a state from which it can be
21960          * restarted. Stopping an instance does not preserve data stored in RAM.</p>
21961          * <p>Performing this operation on an instance that uses an instance store as its
21962          * root device returns an error.</p> <p>If you attempt to start a T3 instance with
21963          * <code>host</code> tenancy and the <code>unlimted</code> CPU credit option, the
21964          * request fails. The <code>unlimited</code> CPU credit option is not supported on
21965          * Dedicated Hosts. Before you start the instance, either change its CPU credit
21966          * option to <code>standard</code>, or change its tenancy to <code>default</code>
21967          * or <code>dedicated</code>.</p> <p>For more information, see <a
21968          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Stop_Start.html">Stopping
21969          * instances</a> in the <i>Amazon EC2 User Guide</i>.</p><p><h3>See Also:</h3>   <a
21970          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/StartInstances">AWS
21971          * API Reference</a></p>
21972          */
21973         virtual Model::StartInstancesOutcome StartInstances(const Model::StartInstancesRequest& request) const;
21974 
21975         /**
21976          * <p>Starts an Amazon EBS-backed instance that you've previously stopped.</p>
21977          * <p>Instances that use Amazon EBS volumes as their root devices can be quickly
21978          * stopped and started. When an instance is stopped, the compute resources are
21979          * released and you are not billed for instance usage. However, your root partition
21980          * Amazon EBS volume remains and continues to persist your data, and you are
21981          * charged for Amazon EBS volume usage. You can restart your instance at any time.
21982          * Every time you start your instance, Amazon EC2 charges a one-minute minimum for
21983          * instance usage, and thereafter charges per second for instance usage.</p>
21984          * <p>Before stopping an instance, make sure it is in a state from which it can be
21985          * restarted. Stopping an instance does not preserve data stored in RAM.</p>
21986          * <p>Performing this operation on an instance that uses an instance store as its
21987          * root device returns an error.</p> <p>If you attempt to start a T3 instance with
21988          * <code>host</code> tenancy and the <code>unlimted</code> CPU credit option, the
21989          * request fails. The <code>unlimited</code> CPU credit option is not supported on
21990          * Dedicated Hosts. Before you start the instance, either change its CPU credit
21991          * option to <code>standard</code>, or change its tenancy to <code>default</code>
21992          * or <code>dedicated</code>.</p> <p>For more information, see <a
21993          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Stop_Start.html">Stopping
21994          * instances</a> in the <i>Amazon EC2 User Guide</i>.</p><p><h3>See Also:</h3>   <a
21995          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/StartInstances">AWS
21996          * API Reference</a></p>
21997          *
21998          * returns a future to the operation so that it can be executed in parallel to other requests.
21999          */
22000         virtual Model::StartInstancesOutcomeCallable StartInstancesCallable(const Model::StartInstancesRequest& request) const;
22001 
22002         /**
22003          * <p>Starts an Amazon EBS-backed instance that you've previously stopped.</p>
22004          * <p>Instances that use Amazon EBS volumes as their root devices can be quickly
22005          * stopped and started. When an instance is stopped, the compute resources are
22006          * released and you are not billed for instance usage. However, your root partition
22007          * Amazon EBS volume remains and continues to persist your data, and you are
22008          * charged for Amazon EBS volume usage. You can restart your instance at any time.
22009          * Every time you start your instance, Amazon EC2 charges a one-minute minimum for
22010          * instance usage, and thereafter charges per second for instance usage.</p>
22011          * <p>Before stopping an instance, make sure it is in a state from which it can be
22012          * restarted. Stopping an instance does not preserve data stored in RAM.</p>
22013          * <p>Performing this operation on an instance that uses an instance store as its
22014          * root device returns an error.</p> <p>If you attempt to start a T3 instance with
22015          * <code>host</code> tenancy and the <code>unlimted</code> CPU credit option, the
22016          * request fails. The <code>unlimited</code> CPU credit option is not supported on
22017          * Dedicated Hosts. Before you start the instance, either change its CPU credit
22018          * option to <code>standard</code>, or change its tenancy to <code>default</code>
22019          * or <code>dedicated</code>.</p> <p>For more information, see <a
22020          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Stop_Start.html">Stopping
22021          * instances</a> in the <i>Amazon EC2 User Guide</i>.</p><p><h3>See Also:</h3>   <a
22022          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/StartInstances">AWS
22023          * API Reference</a></p>
22024          *
22025          * Queues the request into a thread executor and triggers associated callback when operation has finished.
22026          */
22027         virtual void StartInstancesAsync(const Model::StartInstancesRequest& request, const StartInstancesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
22028 
22029         /**
22030          * <p>Starts analyzing the specified path. If the path is reachable, the operation
22031          * returns the shortest feasible path.</p><p><h3>See Also:</h3>   <a
22032          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/StartNetworkInsightsAnalysis">AWS
22033          * API Reference</a></p>
22034          */
22035         virtual Model::StartNetworkInsightsAnalysisOutcome StartNetworkInsightsAnalysis(const Model::StartNetworkInsightsAnalysisRequest& request) const;
22036 
22037         /**
22038          * <p>Starts analyzing the specified path. If the path is reachable, the operation
22039          * returns the shortest feasible path.</p><p><h3>See Also:</h3>   <a
22040          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/StartNetworkInsightsAnalysis">AWS
22041          * API Reference</a></p>
22042          *
22043          * returns a future to the operation so that it can be executed in parallel to other requests.
22044          */
22045         virtual Model::StartNetworkInsightsAnalysisOutcomeCallable StartNetworkInsightsAnalysisCallable(const Model::StartNetworkInsightsAnalysisRequest& request) const;
22046 
22047         /**
22048          * <p>Starts analyzing the specified path. If the path is reachable, the operation
22049          * returns the shortest feasible path.</p><p><h3>See Also:</h3>   <a
22050          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/StartNetworkInsightsAnalysis">AWS
22051          * API Reference</a></p>
22052          *
22053          * Queues the request into a thread executor and triggers associated callback when operation has finished.
22054          */
22055         virtual void StartNetworkInsightsAnalysisAsync(const Model::StartNetworkInsightsAnalysisRequest& request, const StartNetworkInsightsAnalysisResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
22056 
22057         /**
22058          * <p>Initiates the verification process to prove that the service provider owns
22059          * the private DNS name domain for the endpoint service.</p> <p>The service
22060          * provider must successfully perform the verification before the consumer can use
22061          * the name to access the service.</p> <p>Before the service provider runs this
22062          * command, they must add a record to the DNS server. For more information, see <a
22063          * href="https://docs.aws.amazon.com/vpc/latest/userguide/endpoint-services-dns-validation.html#add-dns-txt-record">Adding
22064          * a TXT Record to Your Domain's DNS Server </a> in the <i>Amazon VPC User
22065          * Guide</i>.</p><p><h3>See Also:</h3>   <a
22066          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/StartVpcEndpointServicePrivateDnsVerification">AWS
22067          * API Reference</a></p>
22068          */
22069         virtual Model::StartVpcEndpointServicePrivateDnsVerificationOutcome StartVpcEndpointServicePrivateDnsVerification(const Model::StartVpcEndpointServicePrivateDnsVerificationRequest& request) const;
22070 
22071         /**
22072          * <p>Initiates the verification process to prove that the service provider owns
22073          * the private DNS name domain for the endpoint service.</p> <p>The service
22074          * provider must successfully perform the verification before the consumer can use
22075          * the name to access the service.</p> <p>Before the service provider runs this
22076          * command, they must add a record to the DNS server. For more information, see <a
22077          * href="https://docs.aws.amazon.com/vpc/latest/userguide/endpoint-services-dns-validation.html#add-dns-txt-record">Adding
22078          * a TXT Record to Your Domain's DNS Server </a> in the <i>Amazon VPC User
22079          * Guide</i>.</p><p><h3>See Also:</h3>   <a
22080          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/StartVpcEndpointServicePrivateDnsVerification">AWS
22081          * API Reference</a></p>
22082          *
22083          * returns a future to the operation so that it can be executed in parallel to other requests.
22084          */
22085         virtual Model::StartVpcEndpointServicePrivateDnsVerificationOutcomeCallable StartVpcEndpointServicePrivateDnsVerificationCallable(const Model::StartVpcEndpointServicePrivateDnsVerificationRequest& request) const;
22086 
22087         /**
22088          * <p>Initiates the verification process to prove that the service provider owns
22089          * the private DNS name domain for the endpoint service.</p> <p>The service
22090          * provider must successfully perform the verification before the consumer can use
22091          * the name to access the service.</p> <p>Before the service provider runs this
22092          * command, they must add a record to the DNS server. For more information, see <a
22093          * href="https://docs.aws.amazon.com/vpc/latest/userguide/endpoint-services-dns-validation.html#add-dns-txt-record">Adding
22094          * a TXT Record to Your Domain's DNS Server </a> in the <i>Amazon VPC User
22095          * Guide</i>.</p><p><h3>See Also:</h3>   <a
22096          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/StartVpcEndpointServicePrivateDnsVerification">AWS
22097          * API Reference</a></p>
22098          *
22099          * Queues the request into a thread executor and triggers associated callback when operation has finished.
22100          */
22101         virtual void StartVpcEndpointServicePrivateDnsVerificationAsync(const Model::StartVpcEndpointServicePrivateDnsVerificationRequest& request, const StartVpcEndpointServicePrivateDnsVerificationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
22102 
22103         /**
22104          * <p>Stops an Amazon EBS-backed instance.</p> <p>You can use the Stop action to
22105          * hibernate an instance if the instance is <a
22106          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html#enabling-hibernation">enabled
22107          * for hibernation</a> and it meets the <a
22108          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html#hibernating-prerequisites">hibernation
22109          * prerequisites</a>. For more information, see <a
22110          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html">Hibernate
22111          * your instance</a> in the <i>Amazon EC2 User Guide</i>.</p> <p>We don't charge
22112          * usage for a stopped instance, or data transfer fees; however, your root
22113          * partition Amazon EBS volume remains and continues to persist your data, and you
22114          * are charged for Amazon EBS volume usage. Every time you start your instance,
22115          * Amazon EC2 charges a one-minute minimum for instance usage, and thereafter
22116          * charges per second for instance usage.</p> <p>You can't stop or hibernate
22117          * instance store-backed instances. You can't use the Stop action to hibernate Spot
22118          * Instances, but you can specify that Amazon EC2 should hibernate Spot Instances
22119          * when they are interrupted. For more information, see <a
22120          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-interruptions.html#hibernate-spot-instances">Hibernating
22121          * interrupted Spot Instances</a> in the <i>Amazon EC2 User Guide</i>.</p> <p>When
22122          * you stop or hibernate an instance, we shut it down. You can restart your
22123          * instance at any time. Before stopping or hibernating an instance, make sure it
22124          * is in a state from which it can be restarted. Stopping an instance does not
22125          * preserve data stored in RAM, but hibernating an instance does preserve data
22126          * stored in RAM. If an instance cannot hibernate successfully, a normal shutdown
22127          * occurs.</p> <p>Stopping and hibernating an instance is different to rebooting or
22128          * terminating it. For example, when you stop or hibernate an instance, the root
22129          * device and any other devices attached to the instance persist. When you
22130          * terminate an instance, the root device and any other devices attached during the
22131          * instance launch are automatically deleted. For more information about the
22132          * differences between rebooting, stopping, hibernating, and terminating instances,
22133          * see <a
22134          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-lifecycle.html">Instance
22135          * lifecycle</a> in the <i>Amazon EC2 User Guide</i>.</p> <p>When you stop an
22136          * instance, we attempt to shut it down forcibly after a short while. If your
22137          * instance appears stuck in the stopping state after a period of time, there may
22138          * be an issue with the underlying host computer. For more information, see <a
22139          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/TroubleshootingInstancesStopping.html">Troubleshooting
22140          * stopping your instance</a> in the <i>Amazon EC2 User Guide</i>.</p><p><h3>See
22141          * Also:</h3>   <a
22142          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/StopInstances">AWS
22143          * API Reference</a></p>
22144          */
22145         virtual Model::StopInstancesOutcome StopInstances(const Model::StopInstancesRequest& request) const;
22146 
22147         /**
22148          * <p>Stops an Amazon EBS-backed instance.</p> <p>You can use the Stop action to
22149          * hibernate an instance if the instance is <a
22150          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html#enabling-hibernation">enabled
22151          * for hibernation</a> and it meets the <a
22152          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html#hibernating-prerequisites">hibernation
22153          * prerequisites</a>. For more information, see <a
22154          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html">Hibernate
22155          * your instance</a> in the <i>Amazon EC2 User Guide</i>.</p> <p>We don't charge
22156          * usage for a stopped instance, or data transfer fees; however, your root
22157          * partition Amazon EBS volume remains and continues to persist your data, and you
22158          * are charged for Amazon EBS volume usage. Every time you start your instance,
22159          * Amazon EC2 charges a one-minute minimum for instance usage, and thereafter
22160          * charges per second for instance usage.</p> <p>You can't stop or hibernate
22161          * instance store-backed instances. You can't use the Stop action to hibernate Spot
22162          * Instances, but you can specify that Amazon EC2 should hibernate Spot Instances
22163          * when they are interrupted. For more information, see <a
22164          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-interruptions.html#hibernate-spot-instances">Hibernating
22165          * interrupted Spot Instances</a> in the <i>Amazon EC2 User Guide</i>.</p> <p>When
22166          * you stop or hibernate an instance, we shut it down. You can restart your
22167          * instance at any time. Before stopping or hibernating an instance, make sure it
22168          * is in a state from which it can be restarted. Stopping an instance does not
22169          * preserve data stored in RAM, but hibernating an instance does preserve data
22170          * stored in RAM. If an instance cannot hibernate successfully, a normal shutdown
22171          * occurs.</p> <p>Stopping and hibernating an instance is different to rebooting or
22172          * terminating it. For example, when you stop or hibernate an instance, the root
22173          * device and any other devices attached to the instance persist. When you
22174          * terminate an instance, the root device and any other devices attached during the
22175          * instance launch are automatically deleted. For more information about the
22176          * differences between rebooting, stopping, hibernating, and terminating instances,
22177          * see <a
22178          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-lifecycle.html">Instance
22179          * lifecycle</a> in the <i>Amazon EC2 User Guide</i>.</p> <p>When you stop an
22180          * instance, we attempt to shut it down forcibly after a short while. If your
22181          * instance appears stuck in the stopping state after a period of time, there may
22182          * be an issue with the underlying host computer. For more information, see <a
22183          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/TroubleshootingInstancesStopping.html">Troubleshooting
22184          * stopping your instance</a> in the <i>Amazon EC2 User Guide</i>.</p><p><h3>See
22185          * Also:</h3>   <a
22186          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/StopInstances">AWS
22187          * API Reference</a></p>
22188          *
22189          * returns a future to the operation so that it can be executed in parallel to other requests.
22190          */
22191         virtual Model::StopInstancesOutcomeCallable StopInstancesCallable(const Model::StopInstancesRequest& request) const;
22192 
22193         /**
22194          * <p>Stops an Amazon EBS-backed instance.</p> <p>You can use the Stop action to
22195          * hibernate an instance if the instance is <a
22196          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html#enabling-hibernation">enabled
22197          * for hibernation</a> and it meets the <a
22198          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html#hibernating-prerequisites">hibernation
22199          * prerequisites</a>. For more information, see <a
22200          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html">Hibernate
22201          * your instance</a> in the <i>Amazon EC2 User Guide</i>.</p> <p>We don't charge
22202          * usage for a stopped instance, or data transfer fees; however, your root
22203          * partition Amazon EBS volume remains and continues to persist your data, and you
22204          * are charged for Amazon EBS volume usage. Every time you start your instance,
22205          * Amazon EC2 charges a one-minute minimum for instance usage, and thereafter
22206          * charges per second for instance usage.</p> <p>You can't stop or hibernate
22207          * instance store-backed instances. You can't use the Stop action to hibernate Spot
22208          * Instances, but you can specify that Amazon EC2 should hibernate Spot Instances
22209          * when they are interrupted. For more information, see <a
22210          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-interruptions.html#hibernate-spot-instances">Hibernating
22211          * interrupted Spot Instances</a> in the <i>Amazon EC2 User Guide</i>.</p> <p>When
22212          * you stop or hibernate an instance, we shut it down. You can restart your
22213          * instance at any time. Before stopping or hibernating an instance, make sure it
22214          * is in a state from which it can be restarted. Stopping an instance does not
22215          * preserve data stored in RAM, but hibernating an instance does preserve data
22216          * stored in RAM. If an instance cannot hibernate successfully, a normal shutdown
22217          * occurs.</p> <p>Stopping and hibernating an instance is different to rebooting or
22218          * terminating it. For example, when you stop or hibernate an instance, the root
22219          * device and any other devices attached to the instance persist. When you
22220          * terminate an instance, the root device and any other devices attached during the
22221          * instance launch are automatically deleted. For more information about the
22222          * differences between rebooting, stopping, hibernating, and terminating instances,
22223          * see <a
22224          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-lifecycle.html">Instance
22225          * lifecycle</a> in the <i>Amazon EC2 User Guide</i>.</p> <p>When you stop an
22226          * instance, we attempt to shut it down forcibly after a short while. If your
22227          * instance appears stuck in the stopping state after a period of time, there may
22228          * be an issue with the underlying host computer. For more information, see <a
22229          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/TroubleshootingInstancesStopping.html">Troubleshooting
22230          * stopping your instance</a> in the <i>Amazon EC2 User Guide</i>.</p><p><h3>See
22231          * Also:</h3>   <a
22232          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/StopInstances">AWS
22233          * API Reference</a></p>
22234          *
22235          * Queues the request into a thread executor and triggers associated callback when operation has finished.
22236          */
22237         virtual void StopInstancesAsync(const Model::StopInstancesRequest& request, const StopInstancesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
22238 
22239         /**
22240          * <p>Terminates active Client VPN endpoint connections. This action can be used to
22241          * terminate a specific client connection, or up to five connections established by
22242          * a specific user.</p><p><h3>See Also:</h3>   <a
22243          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/TerminateClientVpnConnections">AWS
22244          * API Reference</a></p>
22245          */
22246         virtual Model::TerminateClientVpnConnectionsOutcome TerminateClientVpnConnections(const Model::TerminateClientVpnConnectionsRequest& request) const;
22247 
22248         /**
22249          * <p>Terminates active Client VPN endpoint connections. This action can be used to
22250          * terminate a specific client connection, or up to five connections established by
22251          * a specific user.</p><p><h3>See Also:</h3>   <a
22252          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/TerminateClientVpnConnections">AWS
22253          * API Reference</a></p>
22254          *
22255          * returns a future to the operation so that it can be executed in parallel to other requests.
22256          */
22257         virtual Model::TerminateClientVpnConnectionsOutcomeCallable TerminateClientVpnConnectionsCallable(const Model::TerminateClientVpnConnectionsRequest& request) const;
22258 
22259         /**
22260          * <p>Terminates active Client VPN endpoint connections. This action can be used to
22261          * terminate a specific client connection, or up to five connections established by
22262          * a specific user.</p><p><h3>See Also:</h3>   <a
22263          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/TerminateClientVpnConnections">AWS
22264          * API Reference</a></p>
22265          *
22266          * Queues the request into a thread executor and triggers associated callback when operation has finished.
22267          */
22268         virtual void TerminateClientVpnConnectionsAsync(const Model::TerminateClientVpnConnectionsRequest& request, const TerminateClientVpnConnectionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
22269 
22270         /**
22271          * <p>Shuts down the specified instances. This operation is idempotent; if you
22272          * terminate an instance more than once, each call succeeds. </p> <p>If you specify
22273          * multiple instances and the request fails (for example, because of a single
22274          * incorrect instance ID), none of the instances are terminated.</p> <p>If you
22275          * terminate multiple instances across multiple Availability Zones, and one or more
22276          * of the specified instances are enabled for termination protection, the request
22277          * fails with the following results:</p> <ul> <li> <p>The specified instances that
22278          * are in the same Availability Zone as the protected instance are not
22279          * terminated.</p> </li> <li> <p>The specified instances that are in different
22280          * Availability Zones, where no other specified instances are protected, are
22281          * successfully terminated.</p> </li> </ul> <p>For example, say you have the
22282          * following instances:</p> <ul> <li> <p>Instance A: <code>us-east-1a</code>; Not
22283          * protected</p> </li> <li> <p>Instance B: <code>us-east-1a</code>; Not
22284          * protected</p> </li> <li> <p>Instance C: <code>us-east-1b</code>; Protected</p>
22285          * </li> <li> <p>Instance D: <code>us-east-1b</code>; not protected</p> </li> </ul>
22286          * <p>If you attempt to terminate all of these instances in the same request, the
22287          * request reports failure with the following results:</p> <ul> <li> <p>Instance A
22288          * and Instance B are successfully terminated because none of the specified
22289          * instances in <code>us-east-1a</code> are enabled for termination protection.</p>
22290          * </li> <li> <p>Instance C and Instance D fail to terminate because at least one
22291          * of the specified instances in <code>us-east-1b</code> (Instance C) is enabled
22292          * for termination protection.</p> </li> </ul> <p>Terminated instances remain
22293          * visible after termination (for approximately one hour).</p> <p>By default,
22294          * Amazon EC2 deletes all EBS volumes that were attached when the instance
22295          * launched. Volumes attached after instance launch continue running.</p> <p>You
22296          * can stop, start, and terminate EBS-backed instances. You can only terminate
22297          * instance store-backed instances. What happens to an instance differs if you stop
22298          * it or terminate it. For example, when you stop an instance, the root device and
22299          * any other devices attached to the instance persist. When you terminate an
22300          * instance, any attached EBS volumes with the <code>DeleteOnTermination</code>
22301          * block device mapping parameter set to <code>true</code> are automatically
22302          * deleted. For more information about the differences between stopping and
22303          * terminating instances, see <a
22304          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-lifecycle.html">Instance
22305          * lifecycle</a> in the <i>Amazon EC2 User Guide</i>.</p> <p>For more information
22306          * about troubleshooting, see <a
22307          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/TroubleshootingInstancesShuttingDown.html">Troubleshooting
22308          * terminating your instance</a> in the <i>Amazon EC2 User Guide</i>.</p><p><h3>See
22309          * Also:</h3>   <a
22310          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/TerminateInstances">AWS
22311          * API Reference</a></p>
22312          */
22313         virtual Model::TerminateInstancesOutcome TerminateInstances(const Model::TerminateInstancesRequest& request) const;
22314 
22315         /**
22316          * <p>Shuts down the specified instances. This operation is idempotent; if you
22317          * terminate an instance more than once, each call succeeds. </p> <p>If you specify
22318          * multiple instances and the request fails (for example, because of a single
22319          * incorrect instance ID), none of the instances are terminated.</p> <p>If you
22320          * terminate multiple instances across multiple Availability Zones, and one or more
22321          * of the specified instances are enabled for termination protection, the request
22322          * fails with the following results:</p> <ul> <li> <p>The specified instances that
22323          * are in the same Availability Zone as the protected instance are not
22324          * terminated.</p> </li> <li> <p>The specified instances that are in different
22325          * Availability Zones, where no other specified instances are protected, are
22326          * successfully terminated.</p> </li> </ul> <p>For example, say you have the
22327          * following instances:</p> <ul> <li> <p>Instance A: <code>us-east-1a</code>; Not
22328          * protected</p> </li> <li> <p>Instance B: <code>us-east-1a</code>; Not
22329          * protected</p> </li> <li> <p>Instance C: <code>us-east-1b</code>; Protected</p>
22330          * </li> <li> <p>Instance D: <code>us-east-1b</code>; not protected</p> </li> </ul>
22331          * <p>If you attempt to terminate all of these instances in the same request, the
22332          * request reports failure with the following results:</p> <ul> <li> <p>Instance A
22333          * and Instance B are successfully terminated because none of the specified
22334          * instances in <code>us-east-1a</code> are enabled for termination protection.</p>
22335          * </li> <li> <p>Instance C and Instance D fail to terminate because at least one
22336          * of the specified instances in <code>us-east-1b</code> (Instance C) is enabled
22337          * for termination protection.</p> </li> </ul> <p>Terminated instances remain
22338          * visible after termination (for approximately one hour).</p> <p>By default,
22339          * Amazon EC2 deletes all EBS volumes that were attached when the instance
22340          * launched. Volumes attached after instance launch continue running.</p> <p>You
22341          * can stop, start, and terminate EBS-backed instances. You can only terminate
22342          * instance store-backed instances. What happens to an instance differs if you stop
22343          * it or terminate it. For example, when you stop an instance, the root device and
22344          * any other devices attached to the instance persist. When you terminate an
22345          * instance, any attached EBS volumes with the <code>DeleteOnTermination</code>
22346          * block device mapping parameter set to <code>true</code> are automatically
22347          * deleted. For more information about the differences between stopping and
22348          * terminating instances, see <a
22349          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-lifecycle.html">Instance
22350          * lifecycle</a> in the <i>Amazon EC2 User Guide</i>.</p> <p>For more information
22351          * about troubleshooting, see <a
22352          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/TroubleshootingInstancesShuttingDown.html">Troubleshooting
22353          * terminating your instance</a> in the <i>Amazon EC2 User Guide</i>.</p><p><h3>See
22354          * Also:</h3>   <a
22355          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/TerminateInstances">AWS
22356          * API Reference</a></p>
22357          *
22358          * returns a future to the operation so that it can be executed in parallel to other requests.
22359          */
22360         virtual Model::TerminateInstancesOutcomeCallable TerminateInstancesCallable(const Model::TerminateInstancesRequest& request) const;
22361 
22362         /**
22363          * <p>Shuts down the specified instances. This operation is idempotent; if you
22364          * terminate an instance more than once, each call succeeds. </p> <p>If you specify
22365          * multiple instances and the request fails (for example, because of a single
22366          * incorrect instance ID), none of the instances are terminated.</p> <p>If you
22367          * terminate multiple instances across multiple Availability Zones, and one or more
22368          * of the specified instances are enabled for termination protection, the request
22369          * fails with the following results:</p> <ul> <li> <p>The specified instances that
22370          * are in the same Availability Zone as the protected instance are not
22371          * terminated.</p> </li> <li> <p>The specified instances that are in different
22372          * Availability Zones, where no other specified instances are protected, are
22373          * successfully terminated.</p> </li> </ul> <p>For example, say you have the
22374          * following instances:</p> <ul> <li> <p>Instance A: <code>us-east-1a</code>; Not
22375          * protected</p> </li> <li> <p>Instance B: <code>us-east-1a</code>; Not
22376          * protected</p> </li> <li> <p>Instance C: <code>us-east-1b</code>; Protected</p>
22377          * </li> <li> <p>Instance D: <code>us-east-1b</code>; not protected</p> </li> </ul>
22378          * <p>If you attempt to terminate all of these instances in the same request, the
22379          * request reports failure with the following results:</p> <ul> <li> <p>Instance A
22380          * and Instance B are successfully terminated because none of the specified
22381          * instances in <code>us-east-1a</code> are enabled for termination protection.</p>
22382          * </li> <li> <p>Instance C and Instance D fail to terminate because at least one
22383          * of the specified instances in <code>us-east-1b</code> (Instance C) is enabled
22384          * for termination protection.</p> </li> </ul> <p>Terminated instances remain
22385          * visible after termination (for approximately one hour).</p> <p>By default,
22386          * Amazon EC2 deletes all EBS volumes that were attached when the instance
22387          * launched. Volumes attached after instance launch continue running.</p> <p>You
22388          * can stop, start, and terminate EBS-backed instances. You can only terminate
22389          * instance store-backed instances. What happens to an instance differs if you stop
22390          * it or terminate it. For example, when you stop an instance, the root device and
22391          * any other devices attached to the instance persist. When you terminate an
22392          * instance, any attached EBS volumes with the <code>DeleteOnTermination</code>
22393          * block device mapping parameter set to <code>true</code> are automatically
22394          * deleted. For more information about the differences between stopping and
22395          * terminating instances, see <a
22396          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-lifecycle.html">Instance
22397          * lifecycle</a> in the <i>Amazon EC2 User Guide</i>.</p> <p>For more information
22398          * about troubleshooting, see <a
22399          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/TroubleshootingInstancesShuttingDown.html">Troubleshooting
22400          * terminating your instance</a> in the <i>Amazon EC2 User Guide</i>.</p><p><h3>See
22401          * Also:</h3>   <a
22402          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/TerminateInstances">AWS
22403          * API Reference</a></p>
22404          *
22405          * Queues the request into a thread executor and triggers associated callback when operation has finished.
22406          */
22407         virtual void TerminateInstancesAsync(const Model::TerminateInstancesRequest& request, const TerminateInstancesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
22408 
22409         /**
22410          * <p>Unassigns one or more IPv6 addresses IPv4 Prefix Delegation prefixes from a
22411          * network interface.</p><p><h3>See Also:</h3>   <a
22412          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/UnassignIpv6Addresses">AWS
22413          * API Reference</a></p>
22414          */
22415         virtual Model::UnassignIpv6AddressesOutcome UnassignIpv6Addresses(const Model::UnassignIpv6AddressesRequest& request) const;
22416 
22417         /**
22418          * <p>Unassigns one or more IPv6 addresses IPv4 Prefix Delegation prefixes from a
22419          * network interface.</p><p><h3>See Also:</h3>   <a
22420          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/UnassignIpv6Addresses">AWS
22421          * API Reference</a></p>
22422          *
22423          * returns a future to the operation so that it can be executed in parallel to other requests.
22424          */
22425         virtual Model::UnassignIpv6AddressesOutcomeCallable UnassignIpv6AddressesCallable(const Model::UnassignIpv6AddressesRequest& request) const;
22426 
22427         /**
22428          * <p>Unassigns one or more IPv6 addresses IPv4 Prefix Delegation prefixes from a
22429          * network interface.</p><p><h3>See Also:</h3>   <a
22430          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/UnassignIpv6Addresses">AWS
22431          * API Reference</a></p>
22432          *
22433          * Queues the request into a thread executor and triggers associated callback when operation has finished.
22434          */
22435         virtual void UnassignIpv6AddressesAsync(const Model::UnassignIpv6AddressesRequest& request, const UnassignIpv6AddressesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
22436 
22437         /**
22438          * <p>Unassigns one or more secondary private IP addresses, or IPv4 Prefix
22439          * Delegation prefixes from a network interface.</p><p><h3>See Also:</h3>   <a
22440          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/UnassignPrivateIpAddresses">AWS
22441          * API Reference</a></p>
22442          */
22443         virtual Model::UnassignPrivateIpAddressesOutcome UnassignPrivateIpAddresses(const Model::UnassignPrivateIpAddressesRequest& request) const;
22444 
22445         /**
22446          * <p>Unassigns one or more secondary private IP addresses, or IPv4 Prefix
22447          * Delegation prefixes from a network interface.</p><p><h3>See Also:</h3>   <a
22448          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/UnassignPrivateIpAddresses">AWS
22449          * API Reference</a></p>
22450          *
22451          * returns a future to the operation so that it can be executed in parallel to other requests.
22452          */
22453         virtual Model::UnassignPrivateIpAddressesOutcomeCallable UnassignPrivateIpAddressesCallable(const Model::UnassignPrivateIpAddressesRequest& request) const;
22454 
22455         /**
22456          * <p>Unassigns one or more secondary private IP addresses, or IPv4 Prefix
22457          * Delegation prefixes from a network interface.</p><p><h3>See Also:</h3>   <a
22458          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/UnassignPrivateIpAddresses">AWS
22459          * API Reference</a></p>
22460          *
22461          * Queues the request into a thread executor and triggers associated callback when operation has finished.
22462          */
22463         virtual void UnassignPrivateIpAddressesAsync(const Model::UnassignPrivateIpAddressesRequest& request, const UnassignPrivateIpAddressesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
22464 
22465         /**
22466          * <p>Disables detailed monitoring for a running instance. For more information,
22467          * see <a
22468          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-cloudwatch.html">Monitoring
22469          * your instances and volumes</a> in the <i>Amazon EC2 User
22470          * Guide</i>.</p><p><h3>See Also:</h3>   <a
22471          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/UnmonitorInstances">AWS
22472          * API Reference</a></p>
22473          */
22474         virtual Model::UnmonitorInstancesOutcome UnmonitorInstances(const Model::UnmonitorInstancesRequest& request) const;
22475 
22476         /**
22477          * <p>Disables detailed monitoring for a running instance. For more information,
22478          * see <a
22479          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-cloudwatch.html">Monitoring
22480          * your instances and volumes</a> in the <i>Amazon EC2 User
22481          * Guide</i>.</p><p><h3>See Also:</h3>   <a
22482          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/UnmonitorInstances">AWS
22483          * API Reference</a></p>
22484          *
22485          * returns a future to the operation so that it can be executed in parallel to other requests.
22486          */
22487         virtual Model::UnmonitorInstancesOutcomeCallable UnmonitorInstancesCallable(const Model::UnmonitorInstancesRequest& request) const;
22488 
22489         /**
22490          * <p>Disables detailed monitoring for a running instance. For more information,
22491          * see <a
22492          * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-cloudwatch.html">Monitoring
22493          * your instances and volumes</a> in the <i>Amazon EC2 User
22494          * Guide</i>.</p><p><h3>See Also:</h3>   <a
22495          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/UnmonitorInstances">AWS
22496          * API Reference</a></p>
22497          *
22498          * Queues the request into a thread executor and triggers associated callback when operation has finished.
22499          */
22500         virtual void UnmonitorInstancesAsync(const Model::UnmonitorInstancesRequest& request, const UnmonitorInstancesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
22501 
22502         /**
22503          * <p>[VPC only] Updates the description of an egress (outbound) security group
22504          * rule. You can replace an existing description, or add a description to a rule
22505          * that did not have one previously. You can remove a description for a security
22506          * group rule by omitting the description parameter in the request.</p><p><h3>See
22507          * Also:</h3>   <a
22508          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/UpdateSecurityGroupRuleDescriptionsEgress">AWS
22509          * API Reference</a></p>
22510          */
22511         virtual Model::UpdateSecurityGroupRuleDescriptionsEgressOutcome UpdateSecurityGroupRuleDescriptionsEgress(const Model::UpdateSecurityGroupRuleDescriptionsEgressRequest& request) const;
22512 
22513         /**
22514          * <p>[VPC only] Updates the description of an egress (outbound) security group
22515          * rule. You can replace an existing description, or add a description to a rule
22516          * that did not have one previously. You can remove a description for a security
22517          * group rule by omitting the description parameter in the request.</p><p><h3>See
22518          * Also:</h3>   <a
22519          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/UpdateSecurityGroupRuleDescriptionsEgress">AWS
22520          * API Reference</a></p>
22521          *
22522          * returns a future to the operation so that it can be executed in parallel to other requests.
22523          */
22524         virtual Model::UpdateSecurityGroupRuleDescriptionsEgressOutcomeCallable UpdateSecurityGroupRuleDescriptionsEgressCallable(const Model::UpdateSecurityGroupRuleDescriptionsEgressRequest& request) const;
22525 
22526         /**
22527          * <p>[VPC only] Updates the description of an egress (outbound) security group
22528          * rule. You can replace an existing description, or add a description to a rule
22529          * that did not have one previously. You can remove a description for a security
22530          * group rule by omitting the description parameter in the request.</p><p><h3>See
22531          * Also:</h3>   <a
22532          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/UpdateSecurityGroupRuleDescriptionsEgress">AWS
22533          * API Reference</a></p>
22534          *
22535          * Queues the request into a thread executor and triggers associated callback when operation has finished.
22536          */
22537         virtual void UpdateSecurityGroupRuleDescriptionsEgressAsync(const Model::UpdateSecurityGroupRuleDescriptionsEgressRequest& request, const UpdateSecurityGroupRuleDescriptionsEgressResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
22538 
22539         /**
22540          * <p>Updates the description of an ingress (inbound) security group rule. You can
22541          * replace an existing description, or add a description to a rule that did not
22542          * have one previously. You can remove a description for a security group rule by
22543          * omitting the description parameter in the request.</p><p><h3>See Also:</h3>   <a
22544          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/UpdateSecurityGroupRuleDescriptionsIngress">AWS
22545          * API Reference</a></p>
22546          */
22547         virtual Model::UpdateSecurityGroupRuleDescriptionsIngressOutcome UpdateSecurityGroupRuleDescriptionsIngress(const Model::UpdateSecurityGroupRuleDescriptionsIngressRequest& request) const;
22548 
22549         /**
22550          * <p>Updates the description of an ingress (inbound) security group rule. You can
22551          * replace an existing description, or add a description to a rule that did not
22552          * have one previously. You can remove a description for a security group rule by
22553          * omitting the description parameter in the request.</p><p><h3>See Also:</h3>   <a
22554          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/UpdateSecurityGroupRuleDescriptionsIngress">AWS
22555          * API Reference</a></p>
22556          *
22557          * returns a future to the operation so that it can be executed in parallel to other requests.
22558          */
22559         virtual Model::UpdateSecurityGroupRuleDescriptionsIngressOutcomeCallable UpdateSecurityGroupRuleDescriptionsIngressCallable(const Model::UpdateSecurityGroupRuleDescriptionsIngressRequest& request) const;
22560 
22561         /**
22562          * <p>Updates the description of an ingress (inbound) security group rule. You can
22563          * replace an existing description, or add a description to a rule that did not
22564          * have one previously. You can remove a description for a security group rule by
22565          * omitting the description parameter in the request.</p><p><h3>See Also:</h3>   <a
22566          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/UpdateSecurityGroupRuleDescriptionsIngress">AWS
22567          * API Reference</a></p>
22568          *
22569          * Queues the request into a thread executor and triggers associated callback when operation has finished.
22570          */
22571         virtual void UpdateSecurityGroupRuleDescriptionsIngressAsync(const Model::UpdateSecurityGroupRuleDescriptionsIngressRequest& request, const UpdateSecurityGroupRuleDescriptionsIngressResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
22572 
22573         /**
22574          * <p>Stops advertising an address range that is provisioned as an address
22575          * pool.</p> <p>You can perform this operation at most once every 10 seconds, even
22576          * if you specify different address ranges each time.</p> <p>It can take a few
22577          * minutes before traffic to the specified addresses stops routing to Amazon Web
22578          * Services because of BGP propagation delays.</p><p><h3>See Also:</h3>   <a
22579          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/WithdrawByoipCidr">AWS
22580          * API Reference</a></p>
22581          */
22582         virtual Model::WithdrawByoipCidrOutcome WithdrawByoipCidr(const Model::WithdrawByoipCidrRequest& request) const;
22583 
22584         /**
22585          * <p>Stops advertising an address range that is provisioned as an address
22586          * pool.</p> <p>You can perform this operation at most once every 10 seconds, even
22587          * if you specify different address ranges each time.</p> <p>It can take a few
22588          * minutes before traffic to the specified addresses stops routing to Amazon Web
22589          * Services because of BGP propagation delays.</p><p><h3>See Also:</h3>   <a
22590          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/WithdrawByoipCidr">AWS
22591          * API Reference</a></p>
22592          *
22593          * returns a future to the operation so that it can be executed in parallel to other requests.
22594          */
22595         virtual Model::WithdrawByoipCidrOutcomeCallable WithdrawByoipCidrCallable(const Model::WithdrawByoipCidrRequest& request) const;
22596 
22597         /**
22598          * <p>Stops advertising an address range that is provisioned as an address
22599          * pool.</p> <p>You can perform this operation at most once every 10 seconds, even
22600          * if you specify different address ranges each time.</p> <p>It can take a few
22601          * minutes before traffic to the specified addresses stops routing to Amazon Web
22602          * Services because of BGP propagation delays.</p><p><h3>See Also:</h3>   <a
22603          * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/WithdrawByoipCidr">AWS
22604          * API Reference</a></p>
22605          *
22606          * Queues the request into a thread executor and triggers associated callback when operation has finished.
22607          */
22608         virtual void WithdrawByoipCidrAsync(const Model::WithdrawByoipCidrRequest& request, const WithdrawByoipCidrResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
22609 
22610 
22611         void OverrideEndpoint(const Aws::String& endpoint);
22612   private:
22613         void init(const Aws::Client::ClientConfiguration& clientConfiguration);
22614         void AcceptReservedInstancesExchangeQuoteAsyncHelper(const Model::AcceptReservedInstancesExchangeQuoteRequest& request, const AcceptReservedInstancesExchangeQuoteResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22615         void AcceptTransitGatewayMulticastDomainAssociationsAsyncHelper(const Model::AcceptTransitGatewayMulticastDomainAssociationsRequest& request, const AcceptTransitGatewayMulticastDomainAssociationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22616         void AcceptTransitGatewayPeeringAttachmentAsyncHelper(const Model::AcceptTransitGatewayPeeringAttachmentRequest& request, const AcceptTransitGatewayPeeringAttachmentResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22617         void AcceptTransitGatewayVpcAttachmentAsyncHelper(const Model::AcceptTransitGatewayVpcAttachmentRequest& request, const AcceptTransitGatewayVpcAttachmentResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22618         void AcceptVpcEndpointConnectionsAsyncHelper(const Model::AcceptVpcEndpointConnectionsRequest& request, const AcceptVpcEndpointConnectionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22619         void AcceptVpcPeeringConnectionAsyncHelper(const Model::AcceptVpcPeeringConnectionRequest& request, const AcceptVpcPeeringConnectionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22620         void AdvertiseByoipCidrAsyncHelper(const Model::AdvertiseByoipCidrRequest& request, const AdvertiseByoipCidrResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22621         void AllocateAddressAsyncHelper(const Model::AllocateAddressRequest& request, const AllocateAddressResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22622         void AllocateHostsAsyncHelper(const Model::AllocateHostsRequest& request, const AllocateHostsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22623         void ApplySecurityGroupsToClientVpnTargetNetworkAsyncHelper(const Model::ApplySecurityGroupsToClientVpnTargetNetworkRequest& request, const ApplySecurityGroupsToClientVpnTargetNetworkResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22624         void AssignIpv6AddressesAsyncHelper(const Model::AssignIpv6AddressesRequest& request, const AssignIpv6AddressesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22625         void AssignPrivateIpAddressesAsyncHelper(const Model::AssignPrivateIpAddressesRequest& request, const AssignPrivateIpAddressesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22626         void AssociateAddressAsyncHelper(const Model::AssociateAddressRequest& request, const AssociateAddressResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22627         void AssociateClientVpnTargetNetworkAsyncHelper(const Model::AssociateClientVpnTargetNetworkRequest& request, const AssociateClientVpnTargetNetworkResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22628         void AssociateDhcpOptionsAsyncHelper(const Model::AssociateDhcpOptionsRequest& request, const AssociateDhcpOptionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22629         void AssociateEnclaveCertificateIamRoleAsyncHelper(const Model::AssociateEnclaveCertificateIamRoleRequest& request, const AssociateEnclaveCertificateIamRoleResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22630         void AssociateIamInstanceProfileAsyncHelper(const Model::AssociateIamInstanceProfileRequest& request, const AssociateIamInstanceProfileResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22631         void AssociateInstanceEventWindowAsyncHelper(const Model::AssociateInstanceEventWindowRequest& request, const AssociateInstanceEventWindowResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22632         void AssociateRouteTableAsyncHelper(const Model::AssociateRouteTableRequest& request, const AssociateRouteTableResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22633         void AssociateSubnetCidrBlockAsyncHelper(const Model::AssociateSubnetCidrBlockRequest& request, const AssociateSubnetCidrBlockResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22634         void AssociateTransitGatewayMulticastDomainAsyncHelper(const Model::AssociateTransitGatewayMulticastDomainRequest& request, const AssociateTransitGatewayMulticastDomainResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22635         void AssociateTransitGatewayRouteTableAsyncHelper(const Model::AssociateTransitGatewayRouteTableRequest& request, const AssociateTransitGatewayRouteTableResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22636         void AssociateTrunkInterfaceAsyncHelper(const Model::AssociateTrunkInterfaceRequest& request, const AssociateTrunkInterfaceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22637         void AssociateVpcCidrBlockAsyncHelper(const Model::AssociateVpcCidrBlockRequest& request, const AssociateVpcCidrBlockResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22638         void AttachClassicLinkVpcAsyncHelper(const Model::AttachClassicLinkVpcRequest& request, const AttachClassicLinkVpcResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22639         void AttachInternetGatewayAsyncHelper(const Model::AttachInternetGatewayRequest& request, const AttachInternetGatewayResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22640         void AttachNetworkInterfaceAsyncHelper(const Model::AttachNetworkInterfaceRequest& request, const AttachNetworkInterfaceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22641         void AttachVolumeAsyncHelper(const Model::AttachVolumeRequest& request, const AttachVolumeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22642         void AttachVpnGatewayAsyncHelper(const Model::AttachVpnGatewayRequest& request, const AttachVpnGatewayResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22643         void AuthorizeClientVpnIngressAsyncHelper(const Model::AuthorizeClientVpnIngressRequest& request, const AuthorizeClientVpnIngressResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22644         void AuthorizeSecurityGroupEgressAsyncHelper(const Model::AuthorizeSecurityGroupEgressRequest& request, const AuthorizeSecurityGroupEgressResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22645         void AuthorizeSecurityGroupIngressAsyncHelper(const Model::AuthorizeSecurityGroupIngressRequest& request, const AuthorizeSecurityGroupIngressResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22646         void BundleInstanceAsyncHelper(const Model::BundleInstanceRequest& request, const BundleInstanceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22647         void CancelBundleTaskAsyncHelper(const Model::CancelBundleTaskRequest& request, const CancelBundleTaskResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22648         void CancelCapacityReservationAsyncHelper(const Model::CancelCapacityReservationRequest& request, const CancelCapacityReservationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22649         void CancelCapacityReservationFleetsAsyncHelper(const Model::CancelCapacityReservationFleetsRequest& request, const CancelCapacityReservationFleetsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22650         void CancelConversionTaskAsyncHelper(const Model::CancelConversionTaskRequest& request, const CancelConversionTaskResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22651         void CancelExportTaskAsyncHelper(const Model::CancelExportTaskRequest& request, const CancelExportTaskResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22652         void CancelImportTaskAsyncHelper(const Model::CancelImportTaskRequest& request, const CancelImportTaskResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22653         void CancelReservedInstancesListingAsyncHelper(const Model::CancelReservedInstancesListingRequest& request, const CancelReservedInstancesListingResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22654         void CancelSpotFleetRequestsAsyncHelper(const Model::CancelSpotFleetRequestsRequest& request, const CancelSpotFleetRequestsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22655         void CancelSpotInstanceRequestsAsyncHelper(const Model::CancelSpotInstanceRequestsRequest& request, const CancelSpotInstanceRequestsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22656         void ConfirmProductInstanceAsyncHelper(const Model::ConfirmProductInstanceRequest& request, const ConfirmProductInstanceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22657         void CopyFpgaImageAsyncHelper(const Model::CopyFpgaImageRequest& request, const CopyFpgaImageResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22658         void CopyImageAsyncHelper(const Model::CopyImageRequest& request, const CopyImageResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22659         void CopySnapshotAsyncHelper(const Model::CopySnapshotRequest& request, const CopySnapshotResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22660         void CreateCapacityReservationAsyncHelper(const Model::CreateCapacityReservationRequest& request, const CreateCapacityReservationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22661         void CreateCapacityReservationFleetAsyncHelper(const Model::CreateCapacityReservationFleetRequest& request, const CreateCapacityReservationFleetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22662         void CreateCarrierGatewayAsyncHelper(const Model::CreateCarrierGatewayRequest& request, const CreateCarrierGatewayResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22663         void CreateClientVpnEndpointAsyncHelper(const Model::CreateClientVpnEndpointRequest& request, const CreateClientVpnEndpointResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22664         void CreateClientVpnRouteAsyncHelper(const Model::CreateClientVpnRouteRequest& request, const CreateClientVpnRouteResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22665         void CreateCustomerGatewayAsyncHelper(const Model::CreateCustomerGatewayRequest& request, const CreateCustomerGatewayResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22666         void CreateDefaultSubnetAsyncHelper(const Model::CreateDefaultSubnetRequest& request, const CreateDefaultSubnetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22667         void CreateDefaultVpcAsyncHelper(const Model::CreateDefaultVpcRequest& request, const CreateDefaultVpcResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22668         void CreateDhcpOptionsAsyncHelper(const Model::CreateDhcpOptionsRequest& request, const CreateDhcpOptionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22669         void CreateEgressOnlyInternetGatewayAsyncHelper(const Model::CreateEgressOnlyInternetGatewayRequest& request, const CreateEgressOnlyInternetGatewayResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22670         void CreateFleetAsyncHelper(const Model::CreateFleetRequest& request, const CreateFleetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22671         void CreateFlowLogsAsyncHelper(const Model::CreateFlowLogsRequest& request, const CreateFlowLogsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22672         void CreateFpgaImageAsyncHelper(const Model::CreateFpgaImageRequest& request, const CreateFpgaImageResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22673         void CreateImageAsyncHelper(const Model::CreateImageRequest& request, const CreateImageResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22674         void CreateInstanceEventWindowAsyncHelper(const Model::CreateInstanceEventWindowRequest& request, const CreateInstanceEventWindowResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22675         void CreateInstanceExportTaskAsyncHelper(const Model::CreateInstanceExportTaskRequest& request, const CreateInstanceExportTaskResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22676         void CreateInternetGatewayAsyncHelper(const Model::CreateInternetGatewayRequest& request, const CreateInternetGatewayResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22677         void CreateKeyPairAsyncHelper(const Model::CreateKeyPairRequest& request, const CreateKeyPairResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22678         void CreateLaunchTemplateAsyncHelper(const Model::CreateLaunchTemplateRequest& request, const CreateLaunchTemplateResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22679         void CreateLaunchTemplateVersionAsyncHelper(const Model::CreateLaunchTemplateVersionRequest& request, const CreateLaunchTemplateVersionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22680         void CreateLocalGatewayRouteAsyncHelper(const Model::CreateLocalGatewayRouteRequest& request, const CreateLocalGatewayRouteResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22681         void CreateLocalGatewayRouteTableVpcAssociationAsyncHelper(const Model::CreateLocalGatewayRouteTableVpcAssociationRequest& request, const CreateLocalGatewayRouteTableVpcAssociationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22682         void CreateManagedPrefixListAsyncHelper(const Model::CreateManagedPrefixListRequest& request, const CreateManagedPrefixListResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22683         void CreateNatGatewayAsyncHelper(const Model::CreateNatGatewayRequest& request, const CreateNatGatewayResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22684         void CreateNetworkAclAsyncHelper(const Model::CreateNetworkAclRequest& request, const CreateNetworkAclResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22685         void CreateNetworkAclEntryAsyncHelper(const Model::CreateNetworkAclEntryRequest& request, const CreateNetworkAclEntryResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22686         void CreateNetworkInsightsPathAsyncHelper(const Model::CreateNetworkInsightsPathRequest& request, const CreateNetworkInsightsPathResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22687         void CreateNetworkInterfaceAsyncHelper(const Model::CreateNetworkInterfaceRequest& request, const CreateNetworkInterfaceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22688         void CreateNetworkInterfacePermissionAsyncHelper(const Model::CreateNetworkInterfacePermissionRequest& request, const CreateNetworkInterfacePermissionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22689         void CreatePlacementGroupAsyncHelper(const Model::CreatePlacementGroupRequest& request, const CreatePlacementGroupResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22690         void CreateReplaceRootVolumeTaskAsyncHelper(const Model::CreateReplaceRootVolumeTaskRequest& request, const CreateReplaceRootVolumeTaskResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22691         void CreateReservedInstancesListingAsyncHelper(const Model::CreateReservedInstancesListingRequest& request, const CreateReservedInstancesListingResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22692         void CreateRestoreImageTaskAsyncHelper(const Model::CreateRestoreImageTaskRequest& request, const CreateRestoreImageTaskResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22693         void CreateRouteAsyncHelper(const Model::CreateRouteRequest& request, const CreateRouteResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22694         void CreateRouteTableAsyncHelper(const Model::CreateRouteTableRequest& request, const CreateRouteTableResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22695         void CreateSecurityGroupAsyncHelper(const Model::CreateSecurityGroupRequest& request, const CreateSecurityGroupResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22696         void CreateSnapshotAsyncHelper(const Model::CreateSnapshotRequest& request, const CreateSnapshotResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22697         void CreateSnapshotsAsyncHelper(const Model::CreateSnapshotsRequest& request, const CreateSnapshotsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22698         void CreateSpotDatafeedSubscriptionAsyncHelper(const Model::CreateSpotDatafeedSubscriptionRequest& request, const CreateSpotDatafeedSubscriptionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22699         void CreateStoreImageTaskAsyncHelper(const Model::CreateStoreImageTaskRequest& request, const CreateStoreImageTaskResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22700         void CreateSubnetAsyncHelper(const Model::CreateSubnetRequest& request, const CreateSubnetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22701         void CreateSubnetCidrReservationAsyncHelper(const Model::CreateSubnetCidrReservationRequest& request, const CreateSubnetCidrReservationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22702         void CreateTagsAsyncHelper(const Model::CreateTagsRequest& request, const CreateTagsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22703         void CreateTrafficMirrorFilterAsyncHelper(const Model::CreateTrafficMirrorFilterRequest& request, const CreateTrafficMirrorFilterResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22704         void CreateTrafficMirrorFilterRuleAsyncHelper(const Model::CreateTrafficMirrorFilterRuleRequest& request, const CreateTrafficMirrorFilterRuleResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22705         void CreateTrafficMirrorSessionAsyncHelper(const Model::CreateTrafficMirrorSessionRequest& request, const CreateTrafficMirrorSessionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22706         void CreateTrafficMirrorTargetAsyncHelper(const Model::CreateTrafficMirrorTargetRequest& request, const CreateTrafficMirrorTargetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22707         void CreateTransitGatewayAsyncHelper(const Model::CreateTransitGatewayRequest& request, const CreateTransitGatewayResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22708         void CreateTransitGatewayConnectAsyncHelper(const Model::CreateTransitGatewayConnectRequest& request, const CreateTransitGatewayConnectResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22709         void CreateTransitGatewayConnectPeerAsyncHelper(const Model::CreateTransitGatewayConnectPeerRequest& request, const CreateTransitGatewayConnectPeerResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22710         void CreateTransitGatewayMulticastDomainAsyncHelper(const Model::CreateTransitGatewayMulticastDomainRequest& request, const CreateTransitGatewayMulticastDomainResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22711         void CreateTransitGatewayPeeringAttachmentAsyncHelper(const Model::CreateTransitGatewayPeeringAttachmentRequest& request, const CreateTransitGatewayPeeringAttachmentResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22712         void CreateTransitGatewayPrefixListReferenceAsyncHelper(const Model::CreateTransitGatewayPrefixListReferenceRequest& request, const CreateTransitGatewayPrefixListReferenceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22713         void CreateTransitGatewayRouteAsyncHelper(const Model::CreateTransitGatewayRouteRequest& request, const CreateTransitGatewayRouteResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22714         void CreateTransitGatewayRouteTableAsyncHelper(const Model::CreateTransitGatewayRouteTableRequest& request, const CreateTransitGatewayRouteTableResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22715         void CreateTransitGatewayVpcAttachmentAsyncHelper(const Model::CreateTransitGatewayVpcAttachmentRequest& request, const CreateTransitGatewayVpcAttachmentResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22716         void CreateVolumeAsyncHelper(const Model::CreateVolumeRequest& request, const CreateVolumeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22717         void CreateVpcAsyncHelper(const Model::CreateVpcRequest& request, const CreateVpcResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22718         void CreateVpcEndpointAsyncHelper(const Model::CreateVpcEndpointRequest& request, const CreateVpcEndpointResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22719         void CreateVpcEndpointConnectionNotificationAsyncHelper(const Model::CreateVpcEndpointConnectionNotificationRequest& request, const CreateVpcEndpointConnectionNotificationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22720         void CreateVpcEndpointServiceConfigurationAsyncHelper(const Model::CreateVpcEndpointServiceConfigurationRequest& request, const CreateVpcEndpointServiceConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22721         void CreateVpcPeeringConnectionAsyncHelper(const Model::CreateVpcPeeringConnectionRequest& request, const CreateVpcPeeringConnectionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22722         void CreateVpnConnectionAsyncHelper(const Model::CreateVpnConnectionRequest& request, const CreateVpnConnectionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22723         void CreateVpnConnectionRouteAsyncHelper(const Model::CreateVpnConnectionRouteRequest& request, const CreateVpnConnectionRouteResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22724         void CreateVpnGatewayAsyncHelper(const Model::CreateVpnGatewayRequest& request, const CreateVpnGatewayResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22725         void DeleteCarrierGatewayAsyncHelper(const Model::DeleteCarrierGatewayRequest& request, const DeleteCarrierGatewayResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22726         void DeleteClientVpnEndpointAsyncHelper(const Model::DeleteClientVpnEndpointRequest& request, const DeleteClientVpnEndpointResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22727         void DeleteClientVpnRouteAsyncHelper(const Model::DeleteClientVpnRouteRequest& request, const DeleteClientVpnRouteResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22728         void DeleteCustomerGatewayAsyncHelper(const Model::DeleteCustomerGatewayRequest& request, const DeleteCustomerGatewayResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22729         void DeleteDhcpOptionsAsyncHelper(const Model::DeleteDhcpOptionsRequest& request, const DeleteDhcpOptionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22730         void DeleteEgressOnlyInternetGatewayAsyncHelper(const Model::DeleteEgressOnlyInternetGatewayRequest& request, const DeleteEgressOnlyInternetGatewayResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22731         void DeleteFleetsAsyncHelper(const Model::DeleteFleetsRequest& request, const DeleteFleetsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22732         void DeleteFlowLogsAsyncHelper(const Model::DeleteFlowLogsRequest& request, const DeleteFlowLogsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22733         void DeleteFpgaImageAsyncHelper(const Model::DeleteFpgaImageRequest& request, const DeleteFpgaImageResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22734         void DeleteInstanceEventWindowAsyncHelper(const Model::DeleteInstanceEventWindowRequest& request, const DeleteInstanceEventWindowResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22735         void DeleteInternetGatewayAsyncHelper(const Model::DeleteInternetGatewayRequest& request, const DeleteInternetGatewayResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22736         void DeleteKeyPairAsyncHelper(const Model::DeleteKeyPairRequest& request, const DeleteKeyPairResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22737         void DeleteLaunchTemplateAsyncHelper(const Model::DeleteLaunchTemplateRequest& request, const DeleteLaunchTemplateResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22738         void DeleteLaunchTemplateVersionsAsyncHelper(const Model::DeleteLaunchTemplateVersionsRequest& request, const DeleteLaunchTemplateVersionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22739         void DeleteLocalGatewayRouteAsyncHelper(const Model::DeleteLocalGatewayRouteRequest& request, const DeleteLocalGatewayRouteResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22740         void DeleteLocalGatewayRouteTableVpcAssociationAsyncHelper(const Model::DeleteLocalGatewayRouteTableVpcAssociationRequest& request, const DeleteLocalGatewayRouteTableVpcAssociationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22741         void DeleteManagedPrefixListAsyncHelper(const Model::DeleteManagedPrefixListRequest& request, const DeleteManagedPrefixListResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22742         void DeleteNatGatewayAsyncHelper(const Model::DeleteNatGatewayRequest& request, const DeleteNatGatewayResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22743         void DeleteNetworkAclAsyncHelper(const Model::DeleteNetworkAclRequest& request, const DeleteNetworkAclResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22744         void DeleteNetworkAclEntryAsyncHelper(const Model::DeleteNetworkAclEntryRequest& request, const DeleteNetworkAclEntryResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22745         void DeleteNetworkInsightsAnalysisAsyncHelper(const Model::DeleteNetworkInsightsAnalysisRequest& request, const DeleteNetworkInsightsAnalysisResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22746         void DeleteNetworkInsightsPathAsyncHelper(const Model::DeleteNetworkInsightsPathRequest& request, const DeleteNetworkInsightsPathResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22747         void DeleteNetworkInterfaceAsyncHelper(const Model::DeleteNetworkInterfaceRequest& request, const DeleteNetworkInterfaceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22748         void DeleteNetworkInterfacePermissionAsyncHelper(const Model::DeleteNetworkInterfacePermissionRequest& request, const DeleteNetworkInterfacePermissionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22749         void DeletePlacementGroupAsyncHelper(const Model::DeletePlacementGroupRequest& request, const DeletePlacementGroupResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22750         void DeleteQueuedReservedInstancesAsyncHelper(const Model::DeleteQueuedReservedInstancesRequest& request, const DeleteQueuedReservedInstancesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22751         void DeleteRouteAsyncHelper(const Model::DeleteRouteRequest& request, const DeleteRouteResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22752         void DeleteRouteTableAsyncHelper(const Model::DeleteRouteTableRequest& request, const DeleteRouteTableResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22753         void DeleteSecurityGroupAsyncHelper(const Model::DeleteSecurityGroupRequest& request, const DeleteSecurityGroupResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22754         void DeleteSnapshotAsyncHelper(const Model::DeleteSnapshotRequest& request, const DeleteSnapshotResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22755         void DeleteSpotDatafeedSubscriptionAsyncHelper(const Model::DeleteSpotDatafeedSubscriptionRequest& request, const DeleteSpotDatafeedSubscriptionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22756         void DeleteSubnetAsyncHelper(const Model::DeleteSubnetRequest& request, const DeleteSubnetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22757         void DeleteSubnetCidrReservationAsyncHelper(const Model::DeleteSubnetCidrReservationRequest& request, const DeleteSubnetCidrReservationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22758         void DeleteTagsAsyncHelper(const Model::DeleteTagsRequest& request, const DeleteTagsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22759         void DeleteTrafficMirrorFilterAsyncHelper(const Model::DeleteTrafficMirrorFilterRequest& request, const DeleteTrafficMirrorFilterResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22760         void DeleteTrafficMirrorFilterRuleAsyncHelper(const Model::DeleteTrafficMirrorFilterRuleRequest& request, const DeleteTrafficMirrorFilterRuleResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22761         void DeleteTrafficMirrorSessionAsyncHelper(const Model::DeleteTrafficMirrorSessionRequest& request, const DeleteTrafficMirrorSessionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22762         void DeleteTrafficMirrorTargetAsyncHelper(const Model::DeleteTrafficMirrorTargetRequest& request, const DeleteTrafficMirrorTargetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22763         void DeleteTransitGatewayAsyncHelper(const Model::DeleteTransitGatewayRequest& request, const DeleteTransitGatewayResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22764         void DeleteTransitGatewayConnectAsyncHelper(const Model::DeleteTransitGatewayConnectRequest& request, const DeleteTransitGatewayConnectResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22765         void DeleteTransitGatewayConnectPeerAsyncHelper(const Model::DeleteTransitGatewayConnectPeerRequest& request, const DeleteTransitGatewayConnectPeerResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22766         void DeleteTransitGatewayMulticastDomainAsyncHelper(const Model::DeleteTransitGatewayMulticastDomainRequest& request, const DeleteTransitGatewayMulticastDomainResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22767         void DeleteTransitGatewayPeeringAttachmentAsyncHelper(const Model::DeleteTransitGatewayPeeringAttachmentRequest& request, const DeleteTransitGatewayPeeringAttachmentResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22768         void DeleteTransitGatewayPrefixListReferenceAsyncHelper(const Model::DeleteTransitGatewayPrefixListReferenceRequest& request, const DeleteTransitGatewayPrefixListReferenceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22769         void DeleteTransitGatewayRouteAsyncHelper(const Model::DeleteTransitGatewayRouteRequest& request, const DeleteTransitGatewayRouteResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22770         void DeleteTransitGatewayRouteTableAsyncHelper(const Model::DeleteTransitGatewayRouteTableRequest& request, const DeleteTransitGatewayRouteTableResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22771         void DeleteTransitGatewayVpcAttachmentAsyncHelper(const Model::DeleteTransitGatewayVpcAttachmentRequest& request, const DeleteTransitGatewayVpcAttachmentResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22772         void DeleteVolumeAsyncHelper(const Model::DeleteVolumeRequest& request, const DeleteVolumeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22773         void DeleteVpcAsyncHelper(const Model::DeleteVpcRequest& request, const DeleteVpcResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22774         void DeleteVpcEndpointConnectionNotificationsAsyncHelper(const Model::DeleteVpcEndpointConnectionNotificationsRequest& request, const DeleteVpcEndpointConnectionNotificationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22775         void DeleteVpcEndpointServiceConfigurationsAsyncHelper(const Model::DeleteVpcEndpointServiceConfigurationsRequest& request, const DeleteVpcEndpointServiceConfigurationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22776         void DeleteVpcEndpointsAsyncHelper(const Model::DeleteVpcEndpointsRequest& request, const DeleteVpcEndpointsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22777         void DeleteVpcPeeringConnectionAsyncHelper(const Model::DeleteVpcPeeringConnectionRequest& request, const DeleteVpcPeeringConnectionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22778         void DeleteVpnConnectionAsyncHelper(const Model::DeleteVpnConnectionRequest& request, const DeleteVpnConnectionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22779         void DeleteVpnConnectionRouteAsyncHelper(const Model::DeleteVpnConnectionRouteRequest& request, const DeleteVpnConnectionRouteResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22780         void DeleteVpnGatewayAsyncHelper(const Model::DeleteVpnGatewayRequest& request, const DeleteVpnGatewayResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22781         void DeprovisionByoipCidrAsyncHelper(const Model::DeprovisionByoipCidrRequest& request, const DeprovisionByoipCidrResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22782         void DeregisterImageAsyncHelper(const Model::DeregisterImageRequest& request, const DeregisterImageResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22783         void DeregisterInstanceEventNotificationAttributesAsyncHelper(const Model::DeregisterInstanceEventNotificationAttributesRequest& request, const DeregisterInstanceEventNotificationAttributesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22784         void DeregisterTransitGatewayMulticastGroupMembersAsyncHelper(const Model::DeregisterTransitGatewayMulticastGroupMembersRequest& request, const DeregisterTransitGatewayMulticastGroupMembersResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22785         void DeregisterTransitGatewayMulticastGroupSourcesAsyncHelper(const Model::DeregisterTransitGatewayMulticastGroupSourcesRequest& request, const DeregisterTransitGatewayMulticastGroupSourcesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22786         void DescribeAccountAttributesAsyncHelper(const Model::DescribeAccountAttributesRequest& request, const DescribeAccountAttributesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22787         void DescribeAddressesAsyncHelper(const Model::DescribeAddressesRequest& request, const DescribeAddressesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22788         void DescribeAddressesAttributeAsyncHelper(const Model::DescribeAddressesAttributeRequest& request, const DescribeAddressesAttributeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22789         void DescribeAggregateIdFormatAsyncHelper(const Model::DescribeAggregateIdFormatRequest& request, const DescribeAggregateIdFormatResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22790         void DescribeAvailabilityZonesAsyncHelper(const Model::DescribeAvailabilityZonesRequest& request, const DescribeAvailabilityZonesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22791         void DescribeBundleTasksAsyncHelper(const Model::DescribeBundleTasksRequest& request, const DescribeBundleTasksResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22792         void DescribeByoipCidrsAsyncHelper(const Model::DescribeByoipCidrsRequest& request, const DescribeByoipCidrsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22793         void DescribeCapacityReservationFleetsAsyncHelper(const Model::DescribeCapacityReservationFleetsRequest& request, const DescribeCapacityReservationFleetsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22794         void DescribeCapacityReservationsAsyncHelper(const Model::DescribeCapacityReservationsRequest& request, const DescribeCapacityReservationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22795         void DescribeCarrierGatewaysAsyncHelper(const Model::DescribeCarrierGatewaysRequest& request, const DescribeCarrierGatewaysResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22796         void DescribeClassicLinkInstancesAsyncHelper(const Model::DescribeClassicLinkInstancesRequest& request, const DescribeClassicLinkInstancesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22797         void DescribeClientVpnAuthorizationRulesAsyncHelper(const Model::DescribeClientVpnAuthorizationRulesRequest& request, const DescribeClientVpnAuthorizationRulesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22798         void DescribeClientVpnConnectionsAsyncHelper(const Model::DescribeClientVpnConnectionsRequest& request, const DescribeClientVpnConnectionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22799         void DescribeClientVpnEndpointsAsyncHelper(const Model::DescribeClientVpnEndpointsRequest& request, const DescribeClientVpnEndpointsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22800         void DescribeClientVpnRoutesAsyncHelper(const Model::DescribeClientVpnRoutesRequest& request, const DescribeClientVpnRoutesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22801         void DescribeClientVpnTargetNetworksAsyncHelper(const Model::DescribeClientVpnTargetNetworksRequest& request, const DescribeClientVpnTargetNetworksResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22802         void DescribeCoipPoolsAsyncHelper(const Model::DescribeCoipPoolsRequest& request, const DescribeCoipPoolsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22803         void DescribeConversionTasksAsyncHelper(const Model::DescribeConversionTasksRequest& request, const DescribeConversionTasksResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22804         void DescribeCustomerGatewaysAsyncHelper(const Model::DescribeCustomerGatewaysRequest& request, const DescribeCustomerGatewaysResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22805         void DescribeDhcpOptionsAsyncHelper(const Model::DescribeDhcpOptionsRequest& request, const DescribeDhcpOptionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22806         void DescribeEgressOnlyInternetGatewaysAsyncHelper(const Model::DescribeEgressOnlyInternetGatewaysRequest& request, const DescribeEgressOnlyInternetGatewaysResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22807         void DescribeElasticGpusAsyncHelper(const Model::DescribeElasticGpusRequest& request, const DescribeElasticGpusResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22808         void DescribeExportImageTasksAsyncHelper(const Model::DescribeExportImageTasksRequest& request, const DescribeExportImageTasksResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22809         void DescribeExportTasksAsyncHelper(const Model::DescribeExportTasksRequest& request, const DescribeExportTasksResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22810         void DescribeFastSnapshotRestoresAsyncHelper(const Model::DescribeFastSnapshotRestoresRequest& request, const DescribeFastSnapshotRestoresResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22811         void DescribeFleetHistoryAsyncHelper(const Model::DescribeFleetHistoryRequest& request, const DescribeFleetHistoryResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22812         void DescribeFleetInstancesAsyncHelper(const Model::DescribeFleetInstancesRequest& request, const DescribeFleetInstancesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22813         void DescribeFleetsAsyncHelper(const Model::DescribeFleetsRequest& request, const DescribeFleetsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22814         void DescribeFlowLogsAsyncHelper(const Model::DescribeFlowLogsRequest& request, const DescribeFlowLogsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22815         void DescribeFpgaImageAttributeAsyncHelper(const Model::DescribeFpgaImageAttributeRequest& request, const DescribeFpgaImageAttributeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22816         void DescribeFpgaImagesAsyncHelper(const Model::DescribeFpgaImagesRequest& request, const DescribeFpgaImagesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22817         void DescribeHostReservationOfferingsAsyncHelper(const Model::DescribeHostReservationOfferingsRequest& request, const DescribeHostReservationOfferingsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22818         void DescribeHostReservationsAsyncHelper(const Model::DescribeHostReservationsRequest& request, const DescribeHostReservationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22819         void DescribeHostsAsyncHelper(const Model::DescribeHostsRequest& request, const DescribeHostsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22820         void DescribeIamInstanceProfileAssociationsAsyncHelper(const Model::DescribeIamInstanceProfileAssociationsRequest& request, const DescribeIamInstanceProfileAssociationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22821         void DescribeIdFormatAsyncHelper(const Model::DescribeIdFormatRequest& request, const DescribeIdFormatResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22822         void DescribeIdentityIdFormatAsyncHelper(const Model::DescribeIdentityIdFormatRequest& request, const DescribeIdentityIdFormatResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22823         void DescribeImageAttributeAsyncHelper(const Model::DescribeImageAttributeRequest& request, const DescribeImageAttributeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22824         void DescribeImagesAsyncHelper(const Model::DescribeImagesRequest& request, const DescribeImagesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22825         void DescribeImportImageTasksAsyncHelper(const Model::DescribeImportImageTasksRequest& request, const DescribeImportImageTasksResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22826         void DescribeImportSnapshotTasksAsyncHelper(const Model::DescribeImportSnapshotTasksRequest& request, const DescribeImportSnapshotTasksResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22827         void DescribeInstanceAttributeAsyncHelper(const Model::DescribeInstanceAttributeRequest& request, const DescribeInstanceAttributeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22828         void DescribeInstanceCreditSpecificationsAsyncHelper(const Model::DescribeInstanceCreditSpecificationsRequest& request, const DescribeInstanceCreditSpecificationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22829         void DescribeInstanceEventNotificationAttributesAsyncHelper(const Model::DescribeInstanceEventNotificationAttributesRequest& request, const DescribeInstanceEventNotificationAttributesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22830         void DescribeInstanceEventWindowsAsyncHelper(const Model::DescribeInstanceEventWindowsRequest& request, const DescribeInstanceEventWindowsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22831         void DescribeInstanceStatusAsyncHelper(const Model::DescribeInstanceStatusRequest& request, const DescribeInstanceStatusResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22832         void DescribeInstanceTypeOfferingsAsyncHelper(const Model::DescribeInstanceTypeOfferingsRequest& request, const DescribeInstanceTypeOfferingsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22833         void DescribeInstanceTypesAsyncHelper(const Model::DescribeInstanceTypesRequest& request, const DescribeInstanceTypesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22834         void DescribeInstancesAsyncHelper(const Model::DescribeInstancesRequest& request, const DescribeInstancesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22835         void DescribeInternetGatewaysAsyncHelper(const Model::DescribeInternetGatewaysRequest& request, const DescribeInternetGatewaysResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22836         void DescribeIpv6PoolsAsyncHelper(const Model::DescribeIpv6PoolsRequest& request, const DescribeIpv6PoolsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22837         void DescribeKeyPairsAsyncHelper(const Model::DescribeKeyPairsRequest& request, const DescribeKeyPairsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22838         void DescribeLaunchTemplateVersionsAsyncHelper(const Model::DescribeLaunchTemplateVersionsRequest& request, const DescribeLaunchTemplateVersionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22839         void DescribeLaunchTemplatesAsyncHelper(const Model::DescribeLaunchTemplatesRequest& request, const DescribeLaunchTemplatesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22840         void DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsAsyncHelper(const Model::DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsRequest& request, const DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22841         void DescribeLocalGatewayRouteTableVpcAssociationsAsyncHelper(const Model::DescribeLocalGatewayRouteTableVpcAssociationsRequest& request, const DescribeLocalGatewayRouteTableVpcAssociationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22842         void DescribeLocalGatewayRouteTablesAsyncHelper(const Model::DescribeLocalGatewayRouteTablesRequest& request, const DescribeLocalGatewayRouteTablesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22843         void DescribeLocalGatewayVirtualInterfaceGroupsAsyncHelper(const Model::DescribeLocalGatewayVirtualInterfaceGroupsRequest& request, const DescribeLocalGatewayVirtualInterfaceGroupsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22844         void DescribeLocalGatewayVirtualInterfacesAsyncHelper(const Model::DescribeLocalGatewayVirtualInterfacesRequest& request, const DescribeLocalGatewayVirtualInterfacesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22845         void DescribeLocalGatewaysAsyncHelper(const Model::DescribeLocalGatewaysRequest& request, const DescribeLocalGatewaysResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22846         void DescribeManagedPrefixListsAsyncHelper(const Model::DescribeManagedPrefixListsRequest& request, const DescribeManagedPrefixListsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22847         void DescribeMovingAddressesAsyncHelper(const Model::DescribeMovingAddressesRequest& request, const DescribeMovingAddressesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22848         void DescribeNatGatewaysAsyncHelper(const Model::DescribeNatGatewaysRequest& request, const DescribeNatGatewaysResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22849         void DescribeNetworkAclsAsyncHelper(const Model::DescribeNetworkAclsRequest& request, const DescribeNetworkAclsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22850         void DescribeNetworkInsightsAnalysesAsyncHelper(const Model::DescribeNetworkInsightsAnalysesRequest& request, const DescribeNetworkInsightsAnalysesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22851         void DescribeNetworkInsightsPathsAsyncHelper(const Model::DescribeNetworkInsightsPathsRequest& request, const DescribeNetworkInsightsPathsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22852         void DescribeNetworkInterfaceAttributeAsyncHelper(const Model::DescribeNetworkInterfaceAttributeRequest& request, const DescribeNetworkInterfaceAttributeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22853         void DescribeNetworkInterfacePermissionsAsyncHelper(const Model::DescribeNetworkInterfacePermissionsRequest& request, const DescribeNetworkInterfacePermissionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22854         void DescribeNetworkInterfacesAsyncHelper(const Model::DescribeNetworkInterfacesRequest& request, const DescribeNetworkInterfacesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22855         void DescribePlacementGroupsAsyncHelper(const Model::DescribePlacementGroupsRequest& request, const DescribePlacementGroupsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22856         void DescribePrefixListsAsyncHelper(const Model::DescribePrefixListsRequest& request, const DescribePrefixListsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22857         void DescribePrincipalIdFormatAsyncHelper(const Model::DescribePrincipalIdFormatRequest& request, const DescribePrincipalIdFormatResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22858         void DescribePublicIpv4PoolsAsyncHelper(const Model::DescribePublicIpv4PoolsRequest& request, const DescribePublicIpv4PoolsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22859         void DescribeRegionsAsyncHelper(const Model::DescribeRegionsRequest& request, const DescribeRegionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22860         void DescribeReplaceRootVolumeTasksAsyncHelper(const Model::DescribeReplaceRootVolumeTasksRequest& request, const DescribeReplaceRootVolumeTasksResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22861         void DescribeReservedInstancesAsyncHelper(const Model::DescribeReservedInstancesRequest& request, const DescribeReservedInstancesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22862         void DescribeReservedInstancesListingsAsyncHelper(const Model::DescribeReservedInstancesListingsRequest& request, const DescribeReservedInstancesListingsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22863         void DescribeReservedInstancesModificationsAsyncHelper(const Model::DescribeReservedInstancesModificationsRequest& request, const DescribeReservedInstancesModificationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22864         void DescribeReservedInstancesOfferingsAsyncHelper(const Model::DescribeReservedInstancesOfferingsRequest& request, const DescribeReservedInstancesOfferingsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22865         void DescribeRouteTablesAsyncHelper(const Model::DescribeRouteTablesRequest& request, const DescribeRouteTablesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22866         void DescribeScheduledInstanceAvailabilityAsyncHelper(const Model::DescribeScheduledInstanceAvailabilityRequest& request, const DescribeScheduledInstanceAvailabilityResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22867         void DescribeScheduledInstancesAsyncHelper(const Model::DescribeScheduledInstancesRequest& request, const DescribeScheduledInstancesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22868         void DescribeSecurityGroupReferencesAsyncHelper(const Model::DescribeSecurityGroupReferencesRequest& request, const DescribeSecurityGroupReferencesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22869         void DescribeSecurityGroupRulesAsyncHelper(const Model::DescribeSecurityGroupRulesRequest& request, const DescribeSecurityGroupRulesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22870         void DescribeSecurityGroupsAsyncHelper(const Model::DescribeSecurityGroupsRequest& request, const DescribeSecurityGroupsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22871         void DescribeSnapshotAttributeAsyncHelper(const Model::DescribeSnapshotAttributeRequest& request, const DescribeSnapshotAttributeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22872         void DescribeSnapshotsAsyncHelper(const Model::DescribeSnapshotsRequest& request, const DescribeSnapshotsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22873         void DescribeSpotDatafeedSubscriptionAsyncHelper(const Model::DescribeSpotDatafeedSubscriptionRequest& request, const DescribeSpotDatafeedSubscriptionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22874         void DescribeSpotFleetInstancesAsyncHelper(const Model::DescribeSpotFleetInstancesRequest& request, const DescribeSpotFleetInstancesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22875         void DescribeSpotFleetRequestHistoryAsyncHelper(const Model::DescribeSpotFleetRequestHistoryRequest& request, const DescribeSpotFleetRequestHistoryResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22876         void DescribeSpotFleetRequestsAsyncHelper(const Model::DescribeSpotFleetRequestsRequest& request, const DescribeSpotFleetRequestsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22877         void DescribeSpotInstanceRequestsAsyncHelper(const Model::DescribeSpotInstanceRequestsRequest& request, const DescribeSpotInstanceRequestsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22878         void DescribeSpotPriceHistoryAsyncHelper(const Model::DescribeSpotPriceHistoryRequest& request, const DescribeSpotPriceHistoryResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22879         void DescribeStaleSecurityGroupsAsyncHelper(const Model::DescribeStaleSecurityGroupsRequest& request, const DescribeStaleSecurityGroupsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22880         void DescribeStoreImageTasksAsyncHelper(const Model::DescribeStoreImageTasksRequest& request, const DescribeStoreImageTasksResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22881         void DescribeSubnetsAsyncHelper(const Model::DescribeSubnetsRequest& request, const DescribeSubnetsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22882         void DescribeTagsAsyncHelper(const Model::DescribeTagsRequest& request, const DescribeTagsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22883         void DescribeTrafficMirrorFiltersAsyncHelper(const Model::DescribeTrafficMirrorFiltersRequest& request, const DescribeTrafficMirrorFiltersResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22884         void DescribeTrafficMirrorSessionsAsyncHelper(const Model::DescribeTrafficMirrorSessionsRequest& request, const DescribeTrafficMirrorSessionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22885         void DescribeTrafficMirrorTargetsAsyncHelper(const Model::DescribeTrafficMirrorTargetsRequest& request, const DescribeTrafficMirrorTargetsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22886         void DescribeTransitGatewayAttachmentsAsyncHelper(const Model::DescribeTransitGatewayAttachmentsRequest& request, const DescribeTransitGatewayAttachmentsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22887         void DescribeTransitGatewayConnectPeersAsyncHelper(const Model::DescribeTransitGatewayConnectPeersRequest& request, const DescribeTransitGatewayConnectPeersResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22888         void DescribeTransitGatewayConnectsAsyncHelper(const Model::DescribeTransitGatewayConnectsRequest& request, const DescribeTransitGatewayConnectsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22889         void DescribeTransitGatewayMulticastDomainsAsyncHelper(const Model::DescribeTransitGatewayMulticastDomainsRequest& request, const DescribeTransitGatewayMulticastDomainsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22890         void DescribeTransitGatewayPeeringAttachmentsAsyncHelper(const Model::DescribeTransitGatewayPeeringAttachmentsRequest& request, const DescribeTransitGatewayPeeringAttachmentsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22891         void DescribeTransitGatewayRouteTablesAsyncHelper(const Model::DescribeTransitGatewayRouteTablesRequest& request, const DescribeTransitGatewayRouteTablesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22892         void DescribeTransitGatewayVpcAttachmentsAsyncHelper(const Model::DescribeTransitGatewayVpcAttachmentsRequest& request, const DescribeTransitGatewayVpcAttachmentsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22893         void DescribeTransitGatewaysAsyncHelper(const Model::DescribeTransitGatewaysRequest& request, const DescribeTransitGatewaysResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22894         void DescribeTrunkInterfaceAssociationsAsyncHelper(const Model::DescribeTrunkInterfaceAssociationsRequest& request, const DescribeTrunkInterfaceAssociationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22895         void DescribeVolumeAttributeAsyncHelper(const Model::DescribeVolumeAttributeRequest& request, const DescribeVolumeAttributeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22896         void DescribeVolumeStatusAsyncHelper(const Model::DescribeVolumeStatusRequest& request, const DescribeVolumeStatusResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22897         void DescribeVolumesAsyncHelper(const Model::DescribeVolumesRequest& request, const DescribeVolumesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22898         void DescribeVolumesModificationsAsyncHelper(const Model::DescribeVolumesModificationsRequest& request, const DescribeVolumesModificationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22899         void DescribeVpcAttributeAsyncHelper(const Model::DescribeVpcAttributeRequest& request, const DescribeVpcAttributeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22900         void DescribeVpcClassicLinkAsyncHelper(const Model::DescribeVpcClassicLinkRequest& request, const DescribeVpcClassicLinkResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22901         void DescribeVpcClassicLinkDnsSupportAsyncHelper(const Model::DescribeVpcClassicLinkDnsSupportRequest& request, const DescribeVpcClassicLinkDnsSupportResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22902         void DescribeVpcEndpointConnectionNotificationsAsyncHelper(const Model::DescribeVpcEndpointConnectionNotificationsRequest& request, const DescribeVpcEndpointConnectionNotificationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22903         void DescribeVpcEndpointConnectionsAsyncHelper(const Model::DescribeVpcEndpointConnectionsRequest& request, const DescribeVpcEndpointConnectionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22904         void DescribeVpcEndpointServiceConfigurationsAsyncHelper(const Model::DescribeVpcEndpointServiceConfigurationsRequest& request, const DescribeVpcEndpointServiceConfigurationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22905         void DescribeVpcEndpointServicePermissionsAsyncHelper(const Model::DescribeVpcEndpointServicePermissionsRequest& request, const DescribeVpcEndpointServicePermissionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22906         void DescribeVpcEndpointServicesAsyncHelper(const Model::DescribeVpcEndpointServicesRequest& request, const DescribeVpcEndpointServicesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22907         void DescribeVpcEndpointsAsyncHelper(const Model::DescribeVpcEndpointsRequest& request, const DescribeVpcEndpointsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22908         void DescribeVpcPeeringConnectionsAsyncHelper(const Model::DescribeVpcPeeringConnectionsRequest& request, const DescribeVpcPeeringConnectionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22909         void DescribeVpcsAsyncHelper(const Model::DescribeVpcsRequest& request, const DescribeVpcsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22910         void DescribeVpnConnectionsAsyncHelper(const Model::DescribeVpnConnectionsRequest& request, const DescribeVpnConnectionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22911         void DescribeVpnGatewaysAsyncHelper(const Model::DescribeVpnGatewaysRequest& request, const DescribeVpnGatewaysResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22912         void DetachClassicLinkVpcAsyncHelper(const Model::DetachClassicLinkVpcRequest& request, const DetachClassicLinkVpcResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22913         void DetachInternetGatewayAsyncHelper(const Model::DetachInternetGatewayRequest& request, const DetachInternetGatewayResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22914         void DetachNetworkInterfaceAsyncHelper(const Model::DetachNetworkInterfaceRequest& request, const DetachNetworkInterfaceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22915         void DetachVolumeAsyncHelper(const Model::DetachVolumeRequest& request, const DetachVolumeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22916         void DetachVpnGatewayAsyncHelper(const Model::DetachVpnGatewayRequest& request, const DetachVpnGatewayResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22917         void DisableEbsEncryptionByDefaultAsyncHelper(const Model::DisableEbsEncryptionByDefaultRequest& request, const DisableEbsEncryptionByDefaultResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22918         void DisableFastSnapshotRestoresAsyncHelper(const Model::DisableFastSnapshotRestoresRequest& request, const DisableFastSnapshotRestoresResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22919         void DisableImageDeprecationAsyncHelper(const Model::DisableImageDeprecationRequest& request, const DisableImageDeprecationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22920         void DisableSerialConsoleAccessAsyncHelper(const Model::DisableSerialConsoleAccessRequest& request, const DisableSerialConsoleAccessResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22921         void DisableTransitGatewayRouteTablePropagationAsyncHelper(const Model::DisableTransitGatewayRouteTablePropagationRequest& request, const DisableTransitGatewayRouteTablePropagationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22922         void DisableVgwRoutePropagationAsyncHelper(const Model::DisableVgwRoutePropagationRequest& request, const DisableVgwRoutePropagationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22923         void DisableVpcClassicLinkAsyncHelper(const Model::DisableVpcClassicLinkRequest& request, const DisableVpcClassicLinkResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22924         void DisableVpcClassicLinkDnsSupportAsyncHelper(const Model::DisableVpcClassicLinkDnsSupportRequest& request, const DisableVpcClassicLinkDnsSupportResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22925         void DisassociateAddressAsyncHelper(const Model::DisassociateAddressRequest& request, const DisassociateAddressResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22926         void DisassociateClientVpnTargetNetworkAsyncHelper(const Model::DisassociateClientVpnTargetNetworkRequest& request, const DisassociateClientVpnTargetNetworkResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22927         void DisassociateEnclaveCertificateIamRoleAsyncHelper(const Model::DisassociateEnclaveCertificateIamRoleRequest& request, const DisassociateEnclaveCertificateIamRoleResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22928         void DisassociateIamInstanceProfileAsyncHelper(const Model::DisassociateIamInstanceProfileRequest& request, const DisassociateIamInstanceProfileResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22929         void DisassociateInstanceEventWindowAsyncHelper(const Model::DisassociateInstanceEventWindowRequest& request, const DisassociateInstanceEventWindowResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22930         void DisassociateRouteTableAsyncHelper(const Model::DisassociateRouteTableRequest& request, const DisassociateRouteTableResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22931         void DisassociateSubnetCidrBlockAsyncHelper(const Model::DisassociateSubnetCidrBlockRequest& request, const DisassociateSubnetCidrBlockResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22932         void DisassociateTransitGatewayMulticastDomainAsyncHelper(const Model::DisassociateTransitGatewayMulticastDomainRequest& request, const DisassociateTransitGatewayMulticastDomainResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22933         void DisassociateTransitGatewayRouteTableAsyncHelper(const Model::DisassociateTransitGatewayRouteTableRequest& request, const DisassociateTransitGatewayRouteTableResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22934         void DisassociateTrunkInterfaceAsyncHelper(const Model::DisassociateTrunkInterfaceRequest& request, const DisassociateTrunkInterfaceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22935         void DisassociateVpcCidrBlockAsyncHelper(const Model::DisassociateVpcCidrBlockRequest& request, const DisassociateVpcCidrBlockResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22936         void EnableEbsEncryptionByDefaultAsyncHelper(const Model::EnableEbsEncryptionByDefaultRequest& request, const EnableEbsEncryptionByDefaultResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22937         void EnableFastSnapshotRestoresAsyncHelper(const Model::EnableFastSnapshotRestoresRequest& request, const EnableFastSnapshotRestoresResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22938         void EnableImageDeprecationAsyncHelper(const Model::EnableImageDeprecationRequest& request, const EnableImageDeprecationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22939         void EnableSerialConsoleAccessAsyncHelper(const Model::EnableSerialConsoleAccessRequest& request, const EnableSerialConsoleAccessResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22940         void EnableTransitGatewayRouteTablePropagationAsyncHelper(const Model::EnableTransitGatewayRouteTablePropagationRequest& request, const EnableTransitGatewayRouteTablePropagationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22941         void EnableVgwRoutePropagationAsyncHelper(const Model::EnableVgwRoutePropagationRequest& request, const EnableVgwRoutePropagationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22942         void EnableVolumeIOAsyncHelper(const Model::EnableVolumeIORequest& request, const EnableVolumeIOResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22943         void EnableVpcClassicLinkAsyncHelper(const Model::EnableVpcClassicLinkRequest& request, const EnableVpcClassicLinkResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22944         void EnableVpcClassicLinkDnsSupportAsyncHelper(const Model::EnableVpcClassicLinkDnsSupportRequest& request, const EnableVpcClassicLinkDnsSupportResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22945         void ExportClientVpnClientCertificateRevocationListAsyncHelper(const Model::ExportClientVpnClientCertificateRevocationListRequest& request, const ExportClientVpnClientCertificateRevocationListResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22946         void ExportClientVpnClientConfigurationAsyncHelper(const Model::ExportClientVpnClientConfigurationRequest& request, const ExportClientVpnClientConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22947         void ExportImageAsyncHelper(const Model::ExportImageRequest& request, const ExportImageResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22948         void ExportTransitGatewayRoutesAsyncHelper(const Model::ExportTransitGatewayRoutesRequest& request, const ExportTransitGatewayRoutesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22949         void GetAssociatedEnclaveCertificateIamRolesAsyncHelper(const Model::GetAssociatedEnclaveCertificateIamRolesRequest& request, const GetAssociatedEnclaveCertificateIamRolesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22950         void GetAssociatedIpv6PoolCidrsAsyncHelper(const Model::GetAssociatedIpv6PoolCidrsRequest& request, const GetAssociatedIpv6PoolCidrsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22951         void GetCapacityReservationUsageAsyncHelper(const Model::GetCapacityReservationUsageRequest& request, const GetCapacityReservationUsageResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22952         void GetCoipPoolUsageAsyncHelper(const Model::GetCoipPoolUsageRequest& request, const GetCoipPoolUsageResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22953         void GetConsoleOutputAsyncHelper(const Model::GetConsoleOutputRequest& request, const GetConsoleOutputResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22954         void GetConsoleScreenshotAsyncHelper(const Model::GetConsoleScreenshotRequest& request, const GetConsoleScreenshotResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22955         void GetDefaultCreditSpecificationAsyncHelper(const Model::GetDefaultCreditSpecificationRequest& request, const GetDefaultCreditSpecificationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22956         void GetEbsDefaultKmsKeyIdAsyncHelper(const Model::GetEbsDefaultKmsKeyIdRequest& request, const GetEbsDefaultKmsKeyIdResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22957         void GetEbsEncryptionByDefaultAsyncHelper(const Model::GetEbsEncryptionByDefaultRequest& request, const GetEbsEncryptionByDefaultResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22958         void GetFlowLogsIntegrationTemplateAsyncHelper(const Model::GetFlowLogsIntegrationTemplateRequest& request, const GetFlowLogsIntegrationTemplateResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22959         void GetGroupsForCapacityReservationAsyncHelper(const Model::GetGroupsForCapacityReservationRequest& request, const GetGroupsForCapacityReservationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22960         void GetHostReservationPurchasePreviewAsyncHelper(const Model::GetHostReservationPurchasePreviewRequest& request, const GetHostReservationPurchasePreviewResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22961         void GetLaunchTemplateDataAsyncHelper(const Model::GetLaunchTemplateDataRequest& request, const GetLaunchTemplateDataResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22962         void GetManagedPrefixListAssociationsAsyncHelper(const Model::GetManagedPrefixListAssociationsRequest& request, const GetManagedPrefixListAssociationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22963         void GetManagedPrefixListEntriesAsyncHelper(const Model::GetManagedPrefixListEntriesRequest& request, const GetManagedPrefixListEntriesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22964         void GetPasswordDataAsyncHelper(const Model::GetPasswordDataRequest& request, const GetPasswordDataResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22965         void GetReservedInstancesExchangeQuoteAsyncHelper(const Model::GetReservedInstancesExchangeQuoteRequest& request, const GetReservedInstancesExchangeQuoteResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22966         void GetSerialConsoleAccessStatusAsyncHelper(const Model::GetSerialConsoleAccessStatusRequest& request, const GetSerialConsoleAccessStatusResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22967         void GetSubnetCidrReservationsAsyncHelper(const Model::GetSubnetCidrReservationsRequest& request, const GetSubnetCidrReservationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22968         void GetTransitGatewayAttachmentPropagationsAsyncHelper(const Model::GetTransitGatewayAttachmentPropagationsRequest& request, const GetTransitGatewayAttachmentPropagationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22969         void GetTransitGatewayMulticastDomainAssociationsAsyncHelper(const Model::GetTransitGatewayMulticastDomainAssociationsRequest& request, const GetTransitGatewayMulticastDomainAssociationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22970         void GetTransitGatewayPrefixListReferencesAsyncHelper(const Model::GetTransitGatewayPrefixListReferencesRequest& request, const GetTransitGatewayPrefixListReferencesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22971         void GetTransitGatewayRouteTableAssociationsAsyncHelper(const Model::GetTransitGatewayRouteTableAssociationsRequest& request, const GetTransitGatewayRouteTableAssociationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22972         void GetTransitGatewayRouteTablePropagationsAsyncHelper(const Model::GetTransitGatewayRouteTablePropagationsRequest& request, const GetTransitGatewayRouteTablePropagationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22973         void GetVpnConnectionDeviceSampleConfigurationAsyncHelper(const Model::GetVpnConnectionDeviceSampleConfigurationRequest& request, const GetVpnConnectionDeviceSampleConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22974         void GetVpnConnectionDeviceTypesAsyncHelper(const Model::GetVpnConnectionDeviceTypesRequest& request, const GetVpnConnectionDeviceTypesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22975         void ImportClientVpnClientCertificateRevocationListAsyncHelper(const Model::ImportClientVpnClientCertificateRevocationListRequest& request, const ImportClientVpnClientCertificateRevocationListResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22976         void ImportImageAsyncHelper(const Model::ImportImageRequest& request, const ImportImageResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22977         void ImportInstanceAsyncHelper(const Model::ImportInstanceRequest& request, const ImportInstanceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22978         void ImportKeyPairAsyncHelper(const Model::ImportKeyPairRequest& request, const ImportKeyPairResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22979         void ImportSnapshotAsyncHelper(const Model::ImportSnapshotRequest& request, const ImportSnapshotResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22980         void ImportVolumeAsyncHelper(const Model::ImportVolumeRequest& request, const ImportVolumeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22981         void ModifyAddressAttributeAsyncHelper(const Model::ModifyAddressAttributeRequest& request, const ModifyAddressAttributeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22982         void ModifyAvailabilityZoneGroupAsyncHelper(const Model::ModifyAvailabilityZoneGroupRequest& request, const ModifyAvailabilityZoneGroupResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22983         void ModifyCapacityReservationAsyncHelper(const Model::ModifyCapacityReservationRequest& request, const ModifyCapacityReservationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22984         void ModifyCapacityReservationFleetAsyncHelper(const Model::ModifyCapacityReservationFleetRequest& request, const ModifyCapacityReservationFleetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22985         void ModifyClientVpnEndpointAsyncHelper(const Model::ModifyClientVpnEndpointRequest& request, const ModifyClientVpnEndpointResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22986         void ModifyDefaultCreditSpecificationAsyncHelper(const Model::ModifyDefaultCreditSpecificationRequest& request, const ModifyDefaultCreditSpecificationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22987         void ModifyEbsDefaultKmsKeyIdAsyncHelper(const Model::ModifyEbsDefaultKmsKeyIdRequest& request, const ModifyEbsDefaultKmsKeyIdResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22988         void ModifyFleetAsyncHelper(const Model::ModifyFleetRequest& request, const ModifyFleetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22989         void ModifyFpgaImageAttributeAsyncHelper(const Model::ModifyFpgaImageAttributeRequest& request, const ModifyFpgaImageAttributeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22990         void ModifyHostsAsyncHelper(const Model::ModifyHostsRequest& request, const ModifyHostsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22991         void ModifyIdFormatAsyncHelper(const Model::ModifyIdFormatRequest& request, const ModifyIdFormatResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22992         void ModifyIdentityIdFormatAsyncHelper(const Model::ModifyIdentityIdFormatRequest& request, const ModifyIdentityIdFormatResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22993         void ModifyImageAttributeAsyncHelper(const Model::ModifyImageAttributeRequest& request, const ModifyImageAttributeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22994         void ModifyInstanceAttributeAsyncHelper(const Model::ModifyInstanceAttributeRequest& request, const ModifyInstanceAttributeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22995         void ModifyInstanceCapacityReservationAttributesAsyncHelper(const Model::ModifyInstanceCapacityReservationAttributesRequest& request, const ModifyInstanceCapacityReservationAttributesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22996         void ModifyInstanceCreditSpecificationAsyncHelper(const Model::ModifyInstanceCreditSpecificationRequest& request, const ModifyInstanceCreditSpecificationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22997         void ModifyInstanceEventStartTimeAsyncHelper(const Model::ModifyInstanceEventStartTimeRequest& request, const ModifyInstanceEventStartTimeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22998         void ModifyInstanceEventWindowAsyncHelper(const Model::ModifyInstanceEventWindowRequest& request, const ModifyInstanceEventWindowResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
22999         void ModifyInstanceMetadataOptionsAsyncHelper(const Model::ModifyInstanceMetadataOptionsRequest& request, const ModifyInstanceMetadataOptionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23000         void ModifyInstancePlacementAsyncHelper(const Model::ModifyInstancePlacementRequest& request, const ModifyInstancePlacementResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23001         void ModifyLaunchTemplateAsyncHelper(const Model::ModifyLaunchTemplateRequest& request, const ModifyLaunchTemplateResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23002         void ModifyManagedPrefixListAsyncHelper(const Model::ModifyManagedPrefixListRequest& request, const ModifyManagedPrefixListResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23003         void ModifyNetworkInterfaceAttributeAsyncHelper(const Model::ModifyNetworkInterfaceAttributeRequest& request, const ModifyNetworkInterfaceAttributeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23004         void ModifyReservedInstancesAsyncHelper(const Model::ModifyReservedInstancesRequest& request, const ModifyReservedInstancesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23005         void ModifySecurityGroupRulesAsyncHelper(const Model::ModifySecurityGroupRulesRequest& request, const ModifySecurityGroupRulesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23006         void ModifySnapshotAttributeAsyncHelper(const Model::ModifySnapshotAttributeRequest& request, const ModifySnapshotAttributeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23007         void ModifySpotFleetRequestAsyncHelper(const Model::ModifySpotFleetRequestRequest& request, const ModifySpotFleetRequestResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23008         void ModifySubnetAttributeAsyncHelper(const Model::ModifySubnetAttributeRequest& request, const ModifySubnetAttributeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23009         void ModifyTrafficMirrorFilterNetworkServicesAsyncHelper(const Model::ModifyTrafficMirrorFilterNetworkServicesRequest& request, const ModifyTrafficMirrorFilterNetworkServicesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23010         void ModifyTrafficMirrorFilterRuleAsyncHelper(const Model::ModifyTrafficMirrorFilterRuleRequest& request, const ModifyTrafficMirrorFilterRuleResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23011         void ModifyTrafficMirrorSessionAsyncHelper(const Model::ModifyTrafficMirrorSessionRequest& request, const ModifyTrafficMirrorSessionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23012         void ModifyTransitGatewayAsyncHelper(const Model::ModifyTransitGatewayRequest& request, const ModifyTransitGatewayResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23013         void ModifyTransitGatewayPrefixListReferenceAsyncHelper(const Model::ModifyTransitGatewayPrefixListReferenceRequest& request, const ModifyTransitGatewayPrefixListReferenceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23014         void ModifyTransitGatewayVpcAttachmentAsyncHelper(const Model::ModifyTransitGatewayVpcAttachmentRequest& request, const ModifyTransitGatewayVpcAttachmentResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23015         void ModifyVolumeAsyncHelper(const Model::ModifyVolumeRequest& request, const ModifyVolumeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23016         void ModifyVolumeAttributeAsyncHelper(const Model::ModifyVolumeAttributeRequest& request, const ModifyVolumeAttributeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23017         void ModifyVpcAttributeAsyncHelper(const Model::ModifyVpcAttributeRequest& request, const ModifyVpcAttributeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23018         void ModifyVpcEndpointAsyncHelper(const Model::ModifyVpcEndpointRequest& request, const ModifyVpcEndpointResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23019         void ModifyVpcEndpointConnectionNotificationAsyncHelper(const Model::ModifyVpcEndpointConnectionNotificationRequest& request, const ModifyVpcEndpointConnectionNotificationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23020         void ModifyVpcEndpointServiceConfigurationAsyncHelper(const Model::ModifyVpcEndpointServiceConfigurationRequest& request, const ModifyVpcEndpointServiceConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23021         void ModifyVpcEndpointServicePermissionsAsyncHelper(const Model::ModifyVpcEndpointServicePermissionsRequest& request, const ModifyVpcEndpointServicePermissionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23022         void ModifyVpcPeeringConnectionOptionsAsyncHelper(const Model::ModifyVpcPeeringConnectionOptionsRequest& request, const ModifyVpcPeeringConnectionOptionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23023         void ModifyVpcTenancyAsyncHelper(const Model::ModifyVpcTenancyRequest& request, const ModifyVpcTenancyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23024         void ModifyVpnConnectionAsyncHelper(const Model::ModifyVpnConnectionRequest& request, const ModifyVpnConnectionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23025         void ModifyVpnConnectionOptionsAsyncHelper(const Model::ModifyVpnConnectionOptionsRequest& request, const ModifyVpnConnectionOptionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23026         void ModifyVpnTunnelCertificateAsyncHelper(const Model::ModifyVpnTunnelCertificateRequest& request, const ModifyVpnTunnelCertificateResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23027         void ModifyVpnTunnelOptionsAsyncHelper(const Model::ModifyVpnTunnelOptionsRequest& request, const ModifyVpnTunnelOptionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23028         void MonitorInstancesAsyncHelper(const Model::MonitorInstancesRequest& request, const MonitorInstancesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23029         void MoveAddressToVpcAsyncHelper(const Model::MoveAddressToVpcRequest& request, const MoveAddressToVpcResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23030         void ProvisionByoipCidrAsyncHelper(const Model::ProvisionByoipCidrRequest& request, const ProvisionByoipCidrResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23031         void PurchaseHostReservationAsyncHelper(const Model::PurchaseHostReservationRequest& request, const PurchaseHostReservationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23032         void PurchaseReservedInstancesOfferingAsyncHelper(const Model::PurchaseReservedInstancesOfferingRequest& request, const PurchaseReservedInstancesOfferingResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23033         void PurchaseScheduledInstancesAsyncHelper(const Model::PurchaseScheduledInstancesRequest& request, const PurchaseScheduledInstancesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23034         void RebootInstancesAsyncHelper(const Model::RebootInstancesRequest& request, const RebootInstancesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23035         void RegisterImageAsyncHelper(const Model::RegisterImageRequest& request, const RegisterImageResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23036         void RegisterInstanceEventNotificationAttributesAsyncHelper(const Model::RegisterInstanceEventNotificationAttributesRequest& request, const RegisterInstanceEventNotificationAttributesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23037         void RegisterTransitGatewayMulticastGroupMembersAsyncHelper(const Model::RegisterTransitGatewayMulticastGroupMembersRequest& request, const RegisterTransitGatewayMulticastGroupMembersResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23038         void RegisterTransitGatewayMulticastGroupSourcesAsyncHelper(const Model::RegisterTransitGatewayMulticastGroupSourcesRequest& request, const RegisterTransitGatewayMulticastGroupSourcesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23039         void RejectTransitGatewayMulticastDomainAssociationsAsyncHelper(const Model::RejectTransitGatewayMulticastDomainAssociationsRequest& request, const RejectTransitGatewayMulticastDomainAssociationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23040         void RejectTransitGatewayPeeringAttachmentAsyncHelper(const Model::RejectTransitGatewayPeeringAttachmentRequest& request, const RejectTransitGatewayPeeringAttachmentResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23041         void RejectTransitGatewayVpcAttachmentAsyncHelper(const Model::RejectTransitGatewayVpcAttachmentRequest& request, const RejectTransitGatewayVpcAttachmentResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23042         void RejectVpcEndpointConnectionsAsyncHelper(const Model::RejectVpcEndpointConnectionsRequest& request, const RejectVpcEndpointConnectionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23043         void RejectVpcPeeringConnectionAsyncHelper(const Model::RejectVpcPeeringConnectionRequest& request, const RejectVpcPeeringConnectionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23044         void ReleaseAddressAsyncHelper(const Model::ReleaseAddressRequest& request, const ReleaseAddressResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23045         void ReleaseHostsAsyncHelper(const Model::ReleaseHostsRequest& request, const ReleaseHostsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23046         void ReplaceIamInstanceProfileAssociationAsyncHelper(const Model::ReplaceIamInstanceProfileAssociationRequest& request, const ReplaceIamInstanceProfileAssociationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23047         void ReplaceNetworkAclAssociationAsyncHelper(const Model::ReplaceNetworkAclAssociationRequest& request, const ReplaceNetworkAclAssociationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23048         void ReplaceNetworkAclEntryAsyncHelper(const Model::ReplaceNetworkAclEntryRequest& request, const ReplaceNetworkAclEntryResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23049         void ReplaceRouteAsyncHelper(const Model::ReplaceRouteRequest& request, const ReplaceRouteResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23050         void ReplaceRouteTableAssociationAsyncHelper(const Model::ReplaceRouteTableAssociationRequest& request, const ReplaceRouteTableAssociationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23051         void ReplaceTransitGatewayRouteAsyncHelper(const Model::ReplaceTransitGatewayRouteRequest& request, const ReplaceTransitGatewayRouteResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23052         void ReportInstanceStatusAsyncHelper(const Model::ReportInstanceStatusRequest& request, const ReportInstanceStatusResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23053         void RequestSpotFleetAsyncHelper(const Model::RequestSpotFleetRequest& request, const RequestSpotFleetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23054         void RequestSpotInstancesAsyncHelper(const Model::RequestSpotInstancesRequest& request, const RequestSpotInstancesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23055         void ResetAddressAttributeAsyncHelper(const Model::ResetAddressAttributeRequest& request, const ResetAddressAttributeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23056         void ResetEbsDefaultKmsKeyIdAsyncHelper(const Model::ResetEbsDefaultKmsKeyIdRequest& request, const ResetEbsDefaultKmsKeyIdResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23057         void ResetFpgaImageAttributeAsyncHelper(const Model::ResetFpgaImageAttributeRequest& request, const ResetFpgaImageAttributeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23058         void ResetImageAttributeAsyncHelper(const Model::ResetImageAttributeRequest& request, const ResetImageAttributeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23059         void ResetInstanceAttributeAsyncHelper(const Model::ResetInstanceAttributeRequest& request, const ResetInstanceAttributeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23060         void ResetNetworkInterfaceAttributeAsyncHelper(const Model::ResetNetworkInterfaceAttributeRequest& request, const ResetNetworkInterfaceAttributeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23061         void ResetSnapshotAttributeAsyncHelper(const Model::ResetSnapshotAttributeRequest& request, const ResetSnapshotAttributeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23062         void RestoreAddressToClassicAsyncHelper(const Model::RestoreAddressToClassicRequest& request, const RestoreAddressToClassicResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23063         void RestoreManagedPrefixListVersionAsyncHelper(const Model::RestoreManagedPrefixListVersionRequest& request, const RestoreManagedPrefixListVersionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23064         void RevokeClientVpnIngressAsyncHelper(const Model::RevokeClientVpnIngressRequest& request, const RevokeClientVpnIngressResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23065         void RevokeSecurityGroupEgressAsyncHelper(const Model::RevokeSecurityGroupEgressRequest& request, const RevokeSecurityGroupEgressResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23066         void RevokeSecurityGroupIngressAsyncHelper(const Model::RevokeSecurityGroupIngressRequest& request, const RevokeSecurityGroupIngressResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23067         void RunInstancesAsyncHelper(const Model::RunInstancesRequest& request, const RunInstancesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23068         void RunScheduledInstancesAsyncHelper(const Model::RunScheduledInstancesRequest& request, const RunScheduledInstancesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23069         void SearchLocalGatewayRoutesAsyncHelper(const Model::SearchLocalGatewayRoutesRequest& request, const SearchLocalGatewayRoutesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23070         void SearchTransitGatewayMulticastGroupsAsyncHelper(const Model::SearchTransitGatewayMulticastGroupsRequest& request, const SearchTransitGatewayMulticastGroupsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23071         void SearchTransitGatewayRoutesAsyncHelper(const Model::SearchTransitGatewayRoutesRequest& request, const SearchTransitGatewayRoutesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23072         void SendDiagnosticInterruptAsyncHelper(const Model::SendDiagnosticInterruptRequest& request, const SendDiagnosticInterruptResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23073         void StartInstancesAsyncHelper(const Model::StartInstancesRequest& request, const StartInstancesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23074         void StartNetworkInsightsAnalysisAsyncHelper(const Model::StartNetworkInsightsAnalysisRequest& request, const StartNetworkInsightsAnalysisResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23075         void StartVpcEndpointServicePrivateDnsVerificationAsyncHelper(const Model::StartVpcEndpointServicePrivateDnsVerificationRequest& request, const StartVpcEndpointServicePrivateDnsVerificationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23076         void StopInstancesAsyncHelper(const Model::StopInstancesRequest& request, const StopInstancesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23077         void TerminateClientVpnConnectionsAsyncHelper(const Model::TerminateClientVpnConnectionsRequest& request, const TerminateClientVpnConnectionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23078         void TerminateInstancesAsyncHelper(const Model::TerminateInstancesRequest& request, const TerminateInstancesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23079         void UnassignIpv6AddressesAsyncHelper(const Model::UnassignIpv6AddressesRequest& request, const UnassignIpv6AddressesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23080         void UnassignPrivateIpAddressesAsyncHelper(const Model::UnassignPrivateIpAddressesRequest& request, const UnassignPrivateIpAddressesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23081         void UnmonitorInstancesAsyncHelper(const Model::UnmonitorInstancesRequest& request, const UnmonitorInstancesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23082         void UpdateSecurityGroupRuleDescriptionsEgressAsyncHelper(const Model::UpdateSecurityGroupRuleDescriptionsEgressRequest& request, const UpdateSecurityGroupRuleDescriptionsEgressResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23083         void UpdateSecurityGroupRuleDescriptionsIngressAsyncHelper(const Model::UpdateSecurityGroupRuleDescriptionsIngressRequest& request, const UpdateSecurityGroupRuleDescriptionsIngressResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23084         void WithdrawByoipCidrAsyncHelper(const Model::WithdrawByoipCidrRequest& request, const WithdrawByoipCidrResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
23085 
23086         Aws::String m_uri;
23087         Aws::String m_configScheme;
23088         std::shared_ptr<Aws::Utils::Threading::Executor> m_executor;
23089   };
23090 
23091 } // namespace EC2
23092 } // namespace Aws
23093