Skip to main content

fakecloud_ec2/service/
mod.rs

1//! EC2 service entrypoint: `ec2Query` dispatch over the per-account state.
2
3mod capacity;
4mod cvpn;
5mod dhcp;
6mod eip;
7mod endpoint;
8mod eni;
9mod fleet;
10mod ice;
11mod image;
12mod instance;
13mod ipam;
14mod ipam_discovery;
15mod ipam_policy;
16mod lgw;
17mod meta;
18mod nacl;
19mod ni;
20mod reserved;
21mod rest;
22mod routing;
23mod sg;
24mod snapshot;
25mod subnet;
26mod tags;
27mod tgw;
28mod tgw_mcast;
29mod tgw_peering;
30mod va;
31mod volume;
32mod vpc;
33mod vpn;
34
35use async_trait::async_trait;
36use http::StatusCode;
37use parking_lot::RwLock;
38use std::sync::Arc;
39
40use fakecloud_core::multi_account::MultiAccountState;
41use fakecloud_core::service::{AwsRequest, AwsResponse, AwsService, AwsServiceError};
42
43use crate::state::SharedEc2State;
44
45/// Every EC2 action this build implements. The conformance audit cross-checks
46/// this list against the handwritten `#[test_action("ec2", …)]` tests, so an
47/// action added here without a test fails the build. Grows one resource-family
48/// batch at a time toward full 767-op parity.
49pub const SUPPORTED_ACTIONS: &[&str] = &[
50    // Tagging subsystem (shared by every resource family)
51    "CreateTags",
52    "DeleteTags",
53    "DescribeTags",
54    // Region / AZ / account describe primitives
55    "DescribeRegions",
56    "DescribeAvailabilityZones",
57    "DescribeAccountAttributes",
58    // VPCs
59    "CreateVpc",
60    "CreateDefaultVpc",
61    "DeleteVpc",
62    "DescribeVpcs",
63    "ModifyVpcAttribute",
64    "DescribeVpcAttribute",
65    "ModifyVpcTenancy",
66    "AssociateVpcCidrBlock",
67    "DisassociateVpcCidrBlock",
68    // DHCP options
69    "CreateDhcpOptions",
70    "DeleteDhcpOptions",
71    "DescribeDhcpOptions",
72    "AssociateDhcpOptions",
73    // Subnets
74    "CreateSubnet",
75    "CreateDefaultSubnet",
76    "CreateSecondarySubnet",
77    "DeleteSubnet",
78    "DeleteSecondarySubnet",
79    "DescribeSubnets",
80    "DescribeSecondarySubnets",
81    "ModifySubnetAttribute",
82    "AssociateSubnetCidrBlock",
83    "DisassociateSubnetCidrBlock",
84    "CreateSubnetCidrReservation",
85    "DeleteSubnetCidrReservation",
86    "GetSubnetCidrReservations",
87    // Security groups
88    "CreateSecurityGroup",
89    "DeleteSecurityGroup",
90    "DescribeSecurityGroups",
91    "AuthorizeSecurityGroupIngress",
92    "AuthorizeSecurityGroupEgress",
93    "RevokeSecurityGroupIngress",
94    "RevokeSecurityGroupEgress",
95    "DescribeSecurityGroupRules",
96    "ModifySecurityGroupRules",
97    "UpdateSecurityGroupRuleDescriptionsIngress",
98    "UpdateSecurityGroupRuleDescriptionsEgress",
99    "AssociateSecurityGroupVpc",
100    "DisassociateSecurityGroupVpc",
101    "DescribeSecurityGroupVpcAssociations",
102    "GetSecurityGroupsForVpc",
103    "DescribeStaleSecurityGroups",
104    "DescribeSecurityGroupReferences",
105    // Route tables
106    "CreateRouteTable",
107    "DeleteRouteTable",
108    "DescribeRouteTables",
109    "CreateRoute",
110    "DeleteRoute",
111    "ReplaceRoute",
112    "AssociateRouteTable",
113    "DisassociateRouteTable",
114    "ReplaceRouteTableAssociation",
115    // Internet gateways
116    "CreateInternetGateway",
117    "DeleteInternetGateway",
118    "DescribeInternetGateways",
119    "AttachInternetGateway",
120    "DetachInternetGateway",
121    // Egress-only internet gateways
122    "CreateEgressOnlyInternetGateway",
123    "DeleteEgressOnlyInternetGateway",
124    "DescribeEgressOnlyInternetGateways",
125    // NAT gateways
126    "CreateNatGateway",
127    "DeleteNatGateway",
128    "DescribeNatGateways",
129    "AssignPrivateNatGatewayAddress",
130    "AssociateNatGatewayAddress",
131    "DisassociateNatGatewayAddress",
132    "UnassignPrivateNatGatewayAddress",
133    // Elastic IPs
134    "AllocateAddress",
135    "ReleaseAddress",
136    "DescribeAddresses",
137    "AssociateAddress",
138    "DisassociateAddress",
139    "DescribeAddressesAttribute",
140    "ModifyAddressAttribute",
141    "ResetAddressAttribute",
142    "MoveAddressToVpc",
143    "RestoreAddressToClassic",
144    "AcceptAddressTransfer",
145    "EnableAddressTransfer",
146    "DisableAddressTransfer",
147    "DescribeAddressTransfers",
148    "DescribeMovingAddresses",
149    // Key pairs
150    "CreateKeyPair",
151    "ImportKeyPair",
152    "DeleteKeyPair",
153    "DescribeKeyPairs",
154    // Placement groups
155    "CreatePlacementGroup",
156    "DeletePlacementGroup",
157    "DescribePlacementGroups",
158    "GetGroupsForCapacityReservation",
159    // Network interfaces
160    "CreateNetworkInterface",
161    "DeleteNetworkInterface",
162    "DescribeNetworkInterfaces",
163    "AttachNetworkInterface",
164    "DetachNetworkInterface",
165    "ModifyNetworkInterfaceAttribute",
166    "ResetNetworkInterfaceAttribute",
167    "DescribeNetworkInterfaceAttribute",
168    "CreateNetworkInterfacePermission",
169    "DeleteNetworkInterfacePermission",
170    "DescribeNetworkInterfacePermissions",
171    "AssignPrivateIpAddresses",
172    "UnassignPrivateIpAddresses",
173    "AssignIpv6Addresses",
174    "UnassignIpv6Addresses",
175    // Instances
176    "RunInstances",
177    "StartInstances",
178    "StopInstances",
179    "RebootInstances",
180    "TerminateInstances",
181    "MonitorInstances",
182    "UnmonitorInstances",
183    "DescribeInstances",
184    "DescribeInstanceStatus",
185    "DescribeInstanceTypes",
186    "GetInstanceTypesFromInstanceRequirements",
187    "DescribeInstanceAttribute",
188    "ModifyInstanceAttribute",
189    "ResetInstanceAttribute",
190    "ModifyInstancePlacement",
191    "ModifyInstanceMetadataOptions",
192    "ModifyInstanceMaintenanceOptions",
193    "ModifyInstanceCpuOptions",
194    "ModifyInstanceNetworkPerformanceOptions",
195    "ModifyInstanceEventStartTime",
196    "DescribeInstanceCreditSpecifications",
197    "ModifyInstanceCreditSpecification",
198    "GetInstanceMetadataDefaults",
199    "ModifyInstanceMetadataDefaults",
200    "RegisterInstanceEventNotificationAttributes",
201    "DeregisterInstanceEventNotificationAttributes",
202    "DescribeInstanceEventNotificationAttributes",
203    "ReportInstanceStatus",
204    "DescribeInstanceTopology",
205    // EBS volumes
206    "CreateVolume",
207    "DeleteVolume",
208    "DescribeVolumes",
209    "AttachVolume",
210    "DetachVolume",
211    "ModifyVolume",
212    "DescribeVolumesModifications",
213    "DescribeVolumeStatus",
214    "DescribeVolumeAttribute",
215    "ModifyVolumeAttribute",
216    "EnableVolumeIO",
217    "ListVolumesInRecycleBin",
218    "RestoreVolumeFromRecycleBin",
219    // EBS encryption defaults
220    "GetEbsEncryptionByDefault",
221    "EnableEbsEncryptionByDefault",
222    "DisableEbsEncryptionByDefault",
223    "GetEbsDefaultKmsKeyId",
224    "ModifyEbsDefaultKmsKeyId",
225    "ResetEbsDefaultKmsKeyId",
226    // EBS snapshots
227    "CreateSnapshot",
228    "CreateSnapshots",
229    "DeleteSnapshot",
230    "DescribeSnapshots",
231    "CopySnapshot",
232    "DescribeSnapshotAttribute",
233    "ModifySnapshotAttribute",
234    "ResetSnapshotAttribute",
235    "ModifySnapshotTier",
236    "DescribeSnapshotTierStatus",
237    "RestoreSnapshotTier",
238    "ListSnapshotsInRecycleBin",
239    "RestoreSnapshotFromRecycleBin",
240    "LockSnapshot",
241    "UnlockSnapshot",
242    "DescribeLockedSnapshots",
243    "GetSnapshotBlockPublicAccessState",
244    "EnableSnapshotBlockPublicAccess",
245    "DisableSnapshotBlockPublicAccess",
246    "EnableFastSnapshotRestores",
247    "DisableFastSnapshotRestores",
248    "DescribeFastSnapshotRestores",
249    // AMIs (images)
250    "CreateImage",
251    "RegisterImage",
252    "DeregisterImage",
253    "DescribeImages",
254    "CopyImage",
255    "DescribeImageAttribute",
256    "ModifyImageAttribute",
257    "ResetImageAttribute",
258    "EnableImage",
259    "DisableImage",
260    "EnableImageDeprecation",
261    "DisableImageDeprecation",
262    "EnableImageDeregistrationProtection",
263    "DisableImageDeregistrationProtection",
264    "CancelImageLaunchPermission",
265    "RestoreImageFromRecycleBin",
266    "ListImagesInRecycleBin",
267    "EnableImageBlockPublicAccess",
268    "DisableImageBlockPublicAccess",
269    "GetImageBlockPublicAccessState",
270    "EnableAllowedImagesSettings",
271    "DisableAllowedImagesSettings",
272    "GetAllowedImagesSettings",
273    "ReplaceImageCriteriaInAllowedImagesSettings",
274    "CreateStoreImageTask",
275    "DescribeStoreImageTasks",
276    "CreateRestoreImageTask",
277    "DescribeFastLaunchImages",
278    // Network ACLs
279    "CreateNetworkAcl",
280    "DeleteNetworkAcl",
281    "DescribeNetworkAcls",
282    "CreateNetworkAclEntry",
283    "DeleteNetworkAclEntry",
284    "ReplaceNetworkAclEntry",
285    "ReplaceNetworkAclAssociation",
286    // VPC peering
287    "CreateVpcPeeringConnection",
288    "DeleteVpcPeeringConnection",
289    "DescribeVpcPeeringConnections",
290    "AcceptVpcPeeringConnection",
291    "RejectVpcPeeringConnection",
292    "ModifyVpcPeeringConnectionOptions",
293    // VPC endpoints
294    "CreateVpcEndpoint",
295    "DeleteVpcEndpoints",
296    "DescribeVpcEndpoints",
297    "ModifyVpcEndpoint",
298    "DescribeVpcEndpointServices",
299    "DescribeVpcEndpointConnections",
300    "AcceptVpcEndpointConnections",
301    "RejectVpcEndpointConnections",
302    "CreateVpcEndpointServiceConfiguration",
303    "DeleteVpcEndpointServiceConfigurations",
304    "DescribeVpcEndpointServiceConfigurations",
305    "ModifyVpcEndpointServiceConfiguration",
306    "DescribeVpcEndpointServicePermissions",
307    "ModifyVpcEndpointServicePermissions",
308    "ModifyVpcEndpointServicePayerResponsibility",
309    "StartVpcEndpointServicePrivateDnsVerification",
310    "CreateVpcEndpointConnectionNotification",
311    "DeleteVpcEndpointConnectionNotifications",
312    "DescribeVpcEndpointConnectionNotifications",
313    "ModifyVpcEndpointConnectionNotification",
314    "DescribeVpcEndpointAssociations",
315    // Flow logs
316    "CreateFlowLogs",
317    "DeleteFlowLogs",
318    "DescribeFlowLogs",
319    "GetFlowLogsIntegrationTemplate",
320    // Launch templates
321    "CreateLaunchTemplate",
322    "CreateLaunchTemplateVersion",
323    "DeleteLaunchTemplate",
324    "DeleteLaunchTemplateVersions",
325    "DescribeLaunchTemplates",
326    "DescribeLaunchTemplateVersions",
327    "GetLaunchTemplateData",
328    "ModifyLaunchTemplate",
329    // Spot instances + fleet
330    "RequestSpotInstances",
331    "DescribeSpotInstanceRequests",
332    "CancelSpotInstanceRequests",
333    "RequestSpotFleet",
334    "DescribeSpotFleetRequests",
335    "CancelSpotFleetRequests",
336    "ModifySpotFleetRequest",
337    "DescribeSpotFleetInstances",
338    "DescribeSpotFleetRequestHistory",
339    "DescribeSpotPriceHistory",
340    "GetSpotPlacementScores",
341    "CreateSpotDatafeedSubscription",
342    "DeleteSpotDatafeedSubscription",
343    "DescribeSpotDatafeedSubscription",
344    // EC2 fleets
345    "CreateFleet",
346    "DeleteFleets",
347    "DescribeFleets",
348    "ModifyFleet",
349    "DescribeFleetHistory",
350    "DescribeFleetInstances",
351    // Capacity reservations
352    "CreateCapacityReservation",
353    "CancelCapacityReservation",
354    "DescribeCapacityReservations",
355    "ModifyCapacityReservation",
356    "GetCapacityReservationUsage",
357    "CreateCapacityReservationFleet",
358    "CancelCapacityReservationFleets",
359    "DescribeCapacityReservationFleets",
360    "ModifyCapacityReservationFleet",
361    "ModifyInstanceCapacityReservationAttributes",
362    "CreateCapacityReservationBySplitting",
363    "MoveCapacityReservationInstances",
364    "DescribeCapacityReservationBillingRequests",
365    "AssociateCapacityReservationBillingOwner",
366    "DisassociateCapacityReservationBillingOwner",
367    "AcceptCapacityReservationBillingOwnership",
368    "RejectCapacityReservationBillingOwnership",
369    "DescribeCapacityBlockOfferings",
370    "DescribeCapacityBlocks",
371    "PurchaseCapacityBlock",
372    "DescribeCapacityBlockStatus",
373    "DescribeCapacityBlockExtensionHistory",
374    "DescribeCapacityBlockExtensionOfferings",
375    "PurchaseCapacityBlockExtension",
376    "DescribeCapacityReservationTopology",
377    "CreateInterruptibleCapacityReservationAllocation",
378    "UpdateInterruptibleCapacityReservationAllocation",
379    // Reserved instances
380    "DescribeReservedInstances",
381    "DescribeReservedInstancesOfferings",
382    "PurchaseReservedInstancesOffering",
383    "DescribeReservedInstancesListings",
384    "CreateReservedInstancesListing",
385    "CancelReservedInstancesListing",
386    "DescribeReservedInstancesModifications",
387    "ModifyReservedInstances",
388    "GetReservedInstancesExchangeQuote",
389    "AcceptReservedInstancesExchangeQuote",
390    "DeleteQueuedReservedInstances",
391    // Dedicated hosts
392    "AllocateHosts",
393    "DescribeHosts",
394    "ModifyHosts",
395    "ReleaseHosts",
396    "DescribeMacHosts",
397    // Transit gateway core
398    "CreateTransitGateway",
399    "DeleteTransitGateway",
400    "DescribeTransitGateways",
401    "ModifyTransitGateway",
402    "CreateTransitGatewayVpcAttachment",
403    "DeleteTransitGatewayVpcAttachment",
404    "DescribeTransitGatewayVpcAttachments",
405    "ModifyTransitGatewayVpcAttachment",
406    "AcceptTransitGatewayVpcAttachment",
407    "RejectTransitGatewayVpcAttachment",
408    "DescribeTransitGatewayAttachments",
409    "CreateTransitGatewayRouteTable",
410    "DeleteTransitGatewayRouteTable",
411    "DescribeTransitGatewayRouteTables",
412    "AssociateTransitGatewayRouteTable",
413    "DisassociateTransitGatewayRouteTable",
414    "EnableTransitGatewayRouteTablePropagation",
415    "DisableTransitGatewayRouteTablePropagation",
416    "CreateTransitGatewayRoute",
417    "DeleteTransitGatewayRoute",
418    "ReplaceTransitGatewayRoute",
419    "SearchTransitGatewayRoutes",
420    "ExportTransitGatewayRoutes",
421    "GetTransitGatewayRouteTableAssociations",
422    "GetTransitGatewayRouteTablePropagations",
423    "GetTransitGatewayAttachmentPropagations",
424    "CreateTransitGatewayPrefixListReference",
425    "DeleteTransitGatewayPrefixListReference",
426    "ModifyTransitGatewayPrefixListReference",
427    "GetTransitGatewayPrefixListReferences",
428    // Transit gateway peering / connect / policy / announcements
429    "CreateTransitGatewayPeeringAttachment",
430    "DeleteTransitGatewayPeeringAttachment",
431    "DescribeTransitGatewayPeeringAttachments",
432    "AcceptTransitGatewayPeeringAttachment",
433    "RejectTransitGatewayPeeringAttachment",
434    "CreateTransitGatewayConnect",
435    "DeleteTransitGatewayConnect",
436    "DescribeTransitGatewayConnects",
437    "CreateTransitGatewayConnectPeer",
438    "DeleteTransitGatewayConnectPeer",
439    "DescribeTransitGatewayConnectPeers",
440    "CreateTransitGatewayPolicyTable",
441    "DeleteTransitGatewayPolicyTable",
442    "DescribeTransitGatewayPolicyTables",
443    "AssociateTransitGatewayPolicyTable",
444    "DisassociateTransitGatewayPolicyTable",
445    "GetTransitGatewayPolicyTableAssociations",
446    "GetTransitGatewayPolicyTableEntries",
447    "CreateTransitGatewayRouteTableAnnouncement",
448    "DeleteTransitGatewayRouteTableAnnouncement",
449    "DescribeTransitGatewayRouteTableAnnouncements",
450    // Transit gateway multicast / metering / client-vpn-attach
451    "CreateTransitGatewayMulticastDomain",
452    "DeleteTransitGatewayMulticastDomain",
453    "DescribeTransitGatewayMulticastDomains",
454    "AssociateTransitGatewayMulticastDomain",
455    "DisassociateTransitGatewayMulticastDomain",
456    "AcceptTransitGatewayMulticastDomainAssociations",
457    "RejectTransitGatewayMulticastDomainAssociations",
458    "GetTransitGatewayMulticastDomainAssociations",
459    "RegisterTransitGatewayMulticastGroupMembers",
460    "RegisterTransitGatewayMulticastGroupSources",
461    "DeregisterTransitGatewayMulticastGroupMembers",
462    "DeregisterTransitGatewayMulticastGroupSources",
463    "SearchTransitGatewayMulticastGroups",
464    "CreateTransitGatewayMeteringPolicy",
465    "DeleteTransitGatewayMeteringPolicy",
466    "DescribeTransitGatewayMeteringPolicies",
467    "ModifyTransitGatewayMeteringPolicy",
468    "CreateTransitGatewayMeteringPolicyEntry",
469    "DeleteTransitGatewayMeteringPolicyEntry",
470    "GetTransitGatewayMeteringPolicyEntries",
471    "AcceptTransitGatewayClientVpnAttachment",
472    "DeleteTransitGatewayClientVpnAttachment",
473    "RejectTransitGatewayClientVpnAttachment",
474    // Site-to-Site VPN
475    "CreateCustomerGateway",
476    "DeleteCustomerGateway",
477    "DescribeCustomerGateways",
478    "CreateVpnGateway",
479    "DeleteVpnGateway",
480    "DescribeVpnGateways",
481    "AttachVpnGateway",
482    "DetachVpnGateway",
483    "CreateVpnConnection",
484    "DeleteVpnConnection",
485    "DescribeVpnConnections",
486    "ModifyVpnConnection",
487    "ModifyVpnConnectionOptions",
488    "CreateVpnConnectionRoute",
489    "DeleteVpnConnectionRoute",
490    "ModifyVpnTunnelOptions",
491    "ModifyVpnTunnelCertificate",
492    "ReplaceVpnTunnel",
493    "GetActiveVpnTunnelStatus",
494    "GetVpnTunnelReplacementStatus",
495    "GetVpnConnectionDeviceTypes",
496    "GetVpnConnectionDeviceSampleConfiguration",
497    "CreateVpnConcentrator",
498    "DeleteVpnConcentrator",
499    "DescribeVpnConcentrators",
500    // Client VPN
501    "CreateClientVpnEndpoint",
502    "DeleteClientVpnEndpoint",
503    "DescribeClientVpnEndpoints",
504    "ModifyClientVpnEndpoint",
505    "CreateClientVpnRoute",
506    "DeleteClientVpnRoute",
507    "DescribeClientVpnRoutes",
508    "AuthorizeClientVpnIngress",
509    "RevokeClientVpnIngress",
510    "DescribeClientVpnAuthorizationRules",
511    "AssociateClientVpnTargetNetwork",
512    "DisassociateClientVpnTargetNetwork",
513    "DescribeClientVpnTargetNetworks",
514    "ApplySecurityGroupsToClientVpnTargetNetwork",
515    "DescribeClientVpnConnections",
516    "TerminateClientVpnConnections",
517    "ExportClientVpnClientCertificateRevocationList",
518    "ExportClientVpnClientConfiguration",
519    "ImportClientVpnClientCertificateRevocationList",
520    // IPAM core
521    "CreateIpam",
522    "DeleteIpam",
523    "DescribeIpams",
524    "ModifyIpam",
525    "CreateIpamScope",
526    "DeleteIpamScope",
527    "DescribeIpamScopes",
528    "ModifyIpamScope",
529    "CreateIpamPool",
530    "DeleteIpamPool",
531    "DescribeIpamPools",
532    "ModifyIpamPool",
533    "ProvisionIpamPoolCidr",
534    "DeprovisionIpamPoolCidr",
535    "GetIpamPoolCidrs",
536    "AllocateIpamPoolCidr",
537    "ReleaseIpamPoolAllocation",
538    "GetIpamPoolAllocations",
539    "GetIpamResourceCidrs",
540    "ModifyIpamResourceCidr",
541    "GetIpamAddressHistory",
542    "EnableIpamOrganizationAdminAccount",
543    "DisableIpamOrganizationAdminAccount",
544    // IPAM resource discovery / BYOASN / BYOIP / external tokens
545    "CreateIpamResourceDiscovery",
546    "DeleteIpamResourceDiscovery",
547    "DescribeIpamResourceDiscoveries",
548    "ModifyIpamResourceDiscovery",
549    "AssociateIpamResourceDiscovery",
550    "DisassociateIpamResourceDiscovery",
551    "DescribeIpamResourceDiscoveryAssociations",
552    "GetIpamDiscoveredAccounts",
553    "GetIpamDiscoveredPublicAddresses",
554    "GetIpamDiscoveredResourceCidrs",
555    "AssociateIpamByoasn",
556    "DisassociateIpamByoasn",
557    "ProvisionIpamByoasn",
558    "DeprovisionIpamByoasn",
559    "DescribeIpamByoasn",
560    "MoveByoipCidrToIpam",
561    "CreateIpamExternalResourceVerificationToken",
562    "DeleteIpamExternalResourceVerificationToken",
563    "DescribeIpamExternalResourceVerificationTokens",
564    // IPAM policies + prefix-list resolvers
565    "CreateIpamPolicy",
566    "DeleteIpamPolicy",
567    "DescribeIpamPolicies",
568    "EnableIpamPolicy",
569    "DisableIpamPolicy",
570    "GetEnabledIpamPolicy",
571    "GetIpamPolicyAllocationRules",
572    "ModifyIpamPolicyAllocationRules",
573    "GetIpamPolicyOrganizationTargets",
574    "CreateIpamPrefixListResolver",
575    "DeleteIpamPrefixListResolver",
576    "DescribeIpamPrefixListResolvers",
577    "ModifyIpamPrefixListResolver",
578    "CreateIpamPrefixListResolverTarget",
579    "DeleteIpamPrefixListResolverTarget",
580    "DescribeIpamPrefixListResolverTargets",
581    "ModifyIpamPrefixListResolverTarget",
582    "GetIpamPrefixListResolverRules",
583    "GetIpamPrefixListResolverVersions",
584    "GetIpamPrefixListResolverVersionEntries",
585    // Verified Access
586    "CreateVerifiedAccessInstance",
587    "DeleteVerifiedAccessInstance",
588    "DescribeVerifiedAccessInstances",
589    "ModifyVerifiedAccessInstance",
590    "CreateVerifiedAccessTrustProvider",
591    "DeleteVerifiedAccessTrustProvider",
592    "DescribeVerifiedAccessTrustProviders",
593    "ModifyVerifiedAccessTrustProvider",
594    "AttachVerifiedAccessTrustProvider",
595    "DetachVerifiedAccessTrustProvider",
596    "CreateVerifiedAccessGroup",
597    "DeleteVerifiedAccessGroup",
598    "DescribeVerifiedAccessGroups",
599    "ModifyVerifiedAccessGroup",
600    "GetVerifiedAccessGroupPolicy",
601    "ModifyVerifiedAccessGroupPolicy",
602    "CreateVerifiedAccessEndpoint",
603    "DeleteVerifiedAccessEndpoint",
604    "DescribeVerifiedAccessEndpoints",
605    "ModifyVerifiedAccessEndpoint",
606    "GetVerifiedAccessEndpointPolicy",
607    "ModifyVerifiedAccessEndpointPolicy",
608    "GetVerifiedAccessEndpointTargets",
609    "DescribeVerifiedAccessInstanceLoggingConfigurations",
610    "ModifyVerifiedAccessInstanceLoggingConfiguration",
611    "ExportVerifiedAccessInstanceClientConfiguration",
612    // Network Insights
613    "CreateNetworkInsightsPath",
614    "DeleteNetworkInsightsPath",
615    "DescribeNetworkInsightsPaths",
616    "StartNetworkInsightsAnalysis",
617    "DeleteNetworkInsightsAnalysis",
618    "DescribeNetworkInsightsAnalyses",
619    "CreateNetworkInsightsAccessScope",
620    "DeleteNetworkInsightsAccessScope",
621    "DescribeNetworkInsightsAccessScopes",
622    "GetNetworkInsightsAccessScopeContent",
623    "StartNetworkInsightsAccessScopeAnalysis",
624    "DeleteNetworkInsightsAccessScopeAnalysis",
625    "DescribeNetworkInsightsAccessScopeAnalyses",
626    "GetNetworkInsightsAccessScopeAnalysisFindings",
627    // Outpost / local gateway / CoIP / carrier
628    "CreateCarrierGateway",
629    "DeleteCarrierGateway",
630    "DescribeCarrierGateways",
631    "CreateCoipPool",
632    "DeleteCoipPool",
633    "DescribeCoipPools",
634    "CreateCoipCidr",
635    "DeleteCoipCidr",
636    "GetCoipPoolUsage",
637    "CreateLocalGatewayRouteTable",
638    "DeleteLocalGatewayRouteTable",
639    "DescribeLocalGatewayRouteTables",
640    "CreateLocalGatewayRoute",
641    "DeleteLocalGatewayRoute",
642    "ModifyLocalGatewayRoute",
643    "SearchLocalGatewayRoutes",
644    "CreateLocalGatewayRouteTableVpcAssociation",
645    "DeleteLocalGatewayRouteTableVpcAssociation",
646    "DescribeLocalGatewayRouteTableVpcAssociations",
647    "CreateLocalGatewayVirtualInterface",
648    "DeleteLocalGatewayVirtualInterface",
649    "DescribeLocalGatewayVirtualInterfaces",
650    "CreateLocalGatewayVirtualInterfaceGroup",
651    "DeleteLocalGatewayVirtualInterfaceGroup",
652    "DescribeLocalGatewayVirtualInterfaceGroups",
653    "CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociation",
654    "DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociation",
655    "DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociations",
656    "DescribeLocalGateways",
657    // Instance Connect / fast launch / serial console / console output
658    "CreateInstanceConnectEndpoint",
659    "DeleteInstanceConnectEndpoint",
660    "DescribeInstanceConnectEndpoints",
661    "ModifyInstanceConnectEndpoint",
662    "EnableFastLaunch",
663    "DisableFastLaunch",
664    "EnableSerialConsoleAccess",
665    "DisableSerialConsoleAccess",
666    "GetSerialConsoleAccessStatus",
667    "GetConsoleOutput",
668    "GetConsoleScreenshot",
669    "GetPasswordData",
670    // Remainder sweep (long tail -> full 767-op parity)
671    "CreateCapacityReservationCancellationQuote",
672    "DescribeCapacityReservationCancellationQuotes",
673    "DescribeIpamPoolAllocations",
674    "ModifyIpamPoolAllocation",
675    "AdvertiseByoipCidr",
676    "AssociateEnclaveCertificateIamRole",
677    "AssociateIamInstanceProfile",
678    "AssociateInstanceEventWindow",
679    "AssociateRouteServer",
680    "AssociateTrunkInterface",
681    "AttachClassicLinkVpc",
682    "BundleInstance",
683    "CancelBundleTask",
684    "CancelConversionTask",
685    "CancelDeclarativePoliciesReport",
686    "CancelExportTask",
687    "CancelImportTask",
688    "ConfirmProductInstance",
689    "CopyFpgaImage",
690    "CopyVolumes",
691    "CreateCapacityManagerDataExport",
692    "CreateDelegateMacVolumeOwnershipTask",
693    "CreateFpgaImage",
694    "CreateImageUsageReport",
695    "CreateInstanceEventWindow",
696    "CreateInstanceExportTask",
697    "CreateMacSystemIntegrityProtectionModificationTask",
698    "CreateManagedPrefixList",
699    "CreatePublicIpv4Pool",
700    "CreateReplaceRootVolumeTask",
701    "CreateRouteServer",
702    "CreateRouteServerEndpoint",
703    "CreateRouteServerPeer",
704    "CreateSecondaryNetwork",
705    "CreateTrafficMirrorFilter",
706    "CreateTrafficMirrorFilterRule",
707    "CreateTrafficMirrorSession",
708    "CreateTrafficMirrorTarget",
709    "CreateVpcBlockPublicAccessExclusion",
710    "CreateVpcEncryptionControl",
711    "DeleteCapacityManagerDataExport",
712    "DeleteFpgaImage",
713    "DeleteImageUsageReport",
714    "DeleteInstanceEventWindow",
715    "DeleteManagedPrefixList",
716    "DeletePublicIpv4Pool",
717    "DeleteRouteServer",
718    "DeleteRouteServerEndpoint",
719    "DeleteRouteServerPeer",
720    "DeleteSecondaryNetwork",
721    "DeleteTrafficMirrorFilter",
722    "DeleteTrafficMirrorFilterRule",
723    "DeleteTrafficMirrorSession",
724    "DeleteTrafficMirrorTarget",
725    "DeleteVpcBlockPublicAccessExclusion",
726    "DeleteVpcEncryptionControl",
727    "DeprovisionByoipCidr",
728    "DeprovisionPublicIpv4PoolCidr",
729    "DescribeAggregateIdFormat",
730    "DescribeAwsNetworkPerformanceMetricSubscriptions",
731    "DescribeBundleTasks",
732    "DescribeByoipCidrs",
733    "DescribeCapacityManagerDataExports",
734    "DescribeClassicLinkInstances",
735    "DescribeConversionTasks",
736    "DescribeDeclarativePoliciesReports",
737    "DescribeElasticGpus",
738    "DescribeExportImageTasks",
739    "DescribeExportTasks",
740    "DescribeFpgaImageAttribute",
741    "DescribeFpgaImages",
742    "DescribeHostReservationOfferings",
743    "DescribeHostReservations",
744    "DescribeIamInstanceProfileAssociations",
745    "DescribeIdFormat",
746    "DescribeIdentityIdFormat",
747    "DescribeImageReferences",
748    "DescribeImageUsageReportEntries",
749    "DescribeImageUsageReports",
750    "DescribeImportImageTasks",
751    "DescribeImportSnapshotTasks",
752    "DescribeInstanceEventWindows",
753    "DescribeInstanceImageMetadata",
754    "DescribeInstanceSqlHaHistoryStates",
755    "DescribeInstanceSqlHaStates",
756    "DescribeInstanceTypeOfferings",
757    "DescribeIpv6Pools",
758    "DescribeMacModificationTasks",
759    "DescribeManagedPrefixLists",
760    "DescribeOutpostLags",
761    "DescribePrefixLists",
762    "DescribePrincipalIdFormat",
763    "DescribePublicIpv4Pools",
764    "DescribeReplaceRootVolumeTasks",
765    "DescribeRouteServerEndpoints",
766    "DescribeRouteServerPeers",
767    "DescribeRouteServers",
768    "DescribeScheduledInstanceAvailability",
769    "DescribeScheduledInstances",
770    "DescribeSecondaryInterfaces",
771    "DescribeSecondaryNetworks",
772    "DescribeServiceLinkVirtualInterfaces",
773    "DescribeTrafficMirrorFilterRules",
774    "DescribeTrafficMirrorFilters",
775    "DescribeTrafficMirrorSessions",
776    "DescribeTrafficMirrorTargets",
777    "DescribeTrunkInterfaceAssociations",
778    "DescribeVpcBlockPublicAccessExclusions",
779    "DescribeVpcBlockPublicAccessOptions",
780    "DescribeVpcClassicLink",
781    "DescribeVpcClassicLinkDnsSupport",
782    "DescribeVpcEncryptionControls",
783    "DetachClassicLinkVpc",
784    "DisableAwsNetworkPerformanceMetricSubscription",
785    "DisableCapacityManager",
786    "DisableInstanceSqlHaStandbyDetections",
787    "DisableRouteServerPropagation",
788    "DisableVgwRoutePropagation",
789    "DisableVpcClassicLink",
790    "DisableVpcClassicLinkDnsSupport",
791    "DisassociateEnclaveCertificateIamRole",
792    "DisassociateIamInstanceProfile",
793    "DisassociateInstanceEventWindow",
794    "DisassociateRouteServer",
795    "DisassociateTrunkInterface",
796    "EnableAwsNetworkPerformanceMetricSubscription",
797    "EnableCapacityManager",
798    "EnableInstanceSqlHaStandbyDetections",
799    "EnableReachabilityAnalyzerOrganizationSharing",
800    "EnableRouteServerPropagation",
801    "EnableVgwRoutePropagation",
802    "EnableVpcClassicLink",
803    "EnableVpcClassicLinkDnsSupport",
804    "ExportImage",
805    "GetAssociatedEnclaveCertificateIamRoles",
806    "GetAssociatedIpv6PoolCidrs",
807    "GetAwsNetworkPerformanceData",
808    "GetCapacityManagerAttributes",
809    "GetCapacityManagerMetricData",
810    "GetCapacityManagerMetricDimensions",
811    "GetCapacityManagerMonitoredTagKeys",
812    "GetDeclarativePoliciesReportSummary",
813    "GetDefaultCreditSpecification",
814    "GetHostReservationPurchasePreview",
815    "GetImageAncestry",
816    "GetInstanceTpmEkPub",
817    "GetInstanceUefiData",
818    "GetManagedPrefixListAssociations",
819    "GetManagedPrefixListEntries",
820    "GetManagedResourceVisibility",
821    "GetRouteServerAssociations",
822    "GetRouteServerPropagations",
823    "GetRouteServerRoutingDatabase",
824    "GetVpcResourcesBlockingEncryptionEnforcement",
825    "ImportImage",
826    "ImportInstance",
827    "ImportSnapshot",
828    "ImportVolume",
829    "ModifyAvailabilityZoneGroup",
830    "ModifyDefaultCreditSpecification",
831    "ModifyFpgaImageAttribute",
832    "ModifyIdFormat",
833    "ModifyIdentityIdFormat",
834    "ModifyInstanceEventWindow",
835    "ModifyManagedPrefixList",
836    "ModifyManagedResourceVisibility",
837    "ModifyPrivateDnsNameOptions",
838    "ModifyPublicIpDnsNameOptions",
839    "ModifyRouteServer",
840    "ModifyTrafficMirrorFilterNetworkServices",
841    "ModifyTrafficMirrorFilterRule",
842    "ModifyTrafficMirrorSession",
843    "ModifyVpcBlockPublicAccessExclusion",
844    "ModifyVpcBlockPublicAccessOptions",
845    "ModifyVpcEncryptionControl",
846    "ProvisionByoipCidr",
847    "ProvisionPublicIpv4PoolCidr",
848    "PurchaseHostReservation",
849    "PurchaseScheduledInstances",
850    "ReplaceIamInstanceProfileAssociation",
851    "ResetFpgaImageAttribute",
852    "RestoreManagedPrefixListVersion",
853    "RunScheduledInstances",
854    "SendDiagnosticInterrupt",
855    "StartDeclarativePoliciesReport",
856    "UpdateCapacityManagerMonitoredTagKeys",
857    "UpdateCapacityManagerOrganizationsAccess",
858    "WithdrawByoipCidr",
859];
860
861/// Amazon EC2 service.
862pub struct Ec2Service {
863    pub(crate) state: SharedEc2State,
864}
865
866impl Ec2Service {
867    /// Construct a service over a fresh, empty account-partitioned state.
868    pub fn new() -> Self {
869        Self {
870            state: Arc::new(RwLock::new(MultiAccountState::new(
871                "000000000000",
872                "us-east-1",
873                "",
874            ))),
875        }
876    }
877
878    /// Construct a service over a shared state handle (used by the server so
879    /// persistence/snapshots can be wired in later batches).
880    pub fn with_state(state: SharedEc2State) -> Self {
881        Self { state }
882    }
883
884    /// Clone the shared state handle so the server can expose read-only
885    /// introspection endpoints (`GET /_fakecloud/ec2/instances`).
886    pub fn shared_state(&self) -> SharedEc2State {
887        self.state.clone()
888    }
889}
890
891impl Default for Ec2Service {
892    fn default() -> Self {
893        Self::new()
894    }
895}
896
897#[async_trait]
898impl AwsService for Ec2Service {
899    fn service_name(&self) -> &str {
900        "ec2"
901    }
902
903    fn supported_actions(&self) -> &[&str] {
904        SUPPORTED_ACTIONS
905    }
906
907    async fn handle(&self, request: AwsRequest) -> Result<AwsResponse, AwsServiceError> {
908        match request.action.as_str() {
909            "CreateTags" => tags::create_tags(self, &request),
910            "DeleteTags" => tags::delete_tags(self, &request),
911            "DescribeTags" => tags::describe_tags(self, &request),
912            "DescribeRegions" => meta::describe_regions(self, &request),
913            "DescribeAvailabilityZones" => meta::describe_availability_zones(self, &request),
914            "DescribeAccountAttributes" => meta::describe_account_attributes(self, &request),
915            "CreateVpc" => vpc::create_vpc(self, &request),
916            "CreateDefaultVpc" => vpc::create_default_vpc(self, &request),
917            "DeleteVpc" => vpc::delete_vpc(self, &request),
918            "DescribeVpcs" => vpc::describe_vpcs(self, &request),
919            "ModifyVpcAttribute" => vpc::modify_vpc_attribute(self, &request),
920            "DescribeVpcAttribute" => vpc::describe_vpc_attribute(self, &request),
921            "ModifyVpcTenancy" => vpc::modify_vpc_tenancy(self, &request),
922            "AssociateVpcCidrBlock" => vpc::associate_vpc_cidr_block(self, &request),
923            "DisassociateVpcCidrBlock" => vpc::disassociate_vpc_cidr_block(self, &request),
924            "CreateDhcpOptions" => dhcp::create_dhcp_options(self, &request),
925            "DeleteDhcpOptions" => dhcp::delete_dhcp_options(self, &request),
926            "DescribeDhcpOptions" => dhcp::describe_dhcp_options(self, &request),
927            "AssociateDhcpOptions" => dhcp::associate_dhcp_options(self, &request),
928            "CreateSubnet" => subnet::create_subnet(self, &request),
929            "CreateDefaultSubnet" => subnet::create_default_subnet(self, &request),
930            "CreateSecondarySubnet" => subnet::create_secondary_subnet(self, &request),
931            "DeleteSubnet" => subnet::delete_subnet(self, &request),
932            "DeleteSecondarySubnet" => subnet::delete_secondary_subnet(self, &request),
933            "DescribeSubnets" => subnet::describe_subnets(self, &request),
934            "DescribeSecondarySubnets" => subnet::describe_secondary_subnets(self, &request),
935            "ModifySubnetAttribute" => subnet::modify_subnet_attribute(self, &request),
936            "AssociateSubnetCidrBlock" => subnet::associate_subnet_cidr_block(self, &request),
937            "DisassociateSubnetCidrBlock" => subnet::disassociate_subnet_cidr_block(self, &request),
938            "CreateSubnetCidrReservation" => subnet::create_subnet_cidr_reservation(self, &request),
939            "DeleteSubnetCidrReservation" => subnet::delete_subnet_cidr_reservation(self, &request),
940            "GetSubnetCidrReservations" => subnet::get_subnet_cidr_reservations(self, &request),
941            "CreateSecurityGroup" => sg::create_security_group(self, &request),
942            "DeleteSecurityGroup" => sg::delete_security_group(self, &request),
943            "DescribeSecurityGroups" => sg::describe_security_groups(self, &request),
944            "AuthorizeSecurityGroupIngress" => sg::authorize_security_group_ingress(self, &request),
945            "AuthorizeSecurityGroupEgress" => sg::authorize_security_group_egress(self, &request),
946            "RevokeSecurityGroupIngress" => sg::revoke_security_group_ingress(self, &request),
947            "RevokeSecurityGroupEgress" => sg::revoke_security_group_egress(self, &request),
948            "DescribeSecurityGroupRules" => sg::describe_security_group_rules(self, &request),
949            "ModifySecurityGroupRules" => sg::modify_security_group_rules(self, &request),
950            "UpdateSecurityGroupRuleDescriptionsIngress" => {
951                sg::update_rule_descriptions_ingress(self, &request)
952            }
953            "UpdateSecurityGroupRuleDescriptionsEgress" => {
954                sg::update_rule_descriptions_egress(self, &request)
955            }
956            "AssociateSecurityGroupVpc" => sg::associate_security_group_vpc(self, &request),
957            "DisassociateSecurityGroupVpc" => sg::disassociate_security_group_vpc(self, &request),
958            "DescribeSecurityGroupVpcAssociations" => {
959                sg::describe_security_group_vpc_associations(self, &request)
960            }
961            "GetSecurityGroupsForVpc" => sg::get_security_groups_for_vpc(self, &request),
962            "DescribeStaleSecurityGroups" => sg::describe_stale_security_groups(self, &request),
963            "DescribeSecurityGroupReferences" => {
964                sg::describe_security_group_references(self, &request)
965            }
966            "CreateRouteTable" => routing::create_route_table(self, &request),
967            "DeleteRouteTable" => routing::delete_route_table(self, &request),
968            "DescribeRouteTables" => routing::describe_route_tables(self, &request),
969            "CreateRoute" => routing::create_route(self, &request),
970            "DeleteRoute" => routing::delete_route(self, &request),
971            "ReplaceRoute" => routing::replace_route(self, &request),
972            "AssociateRouteTable" => routing::associate_route_table(self, &request),
973            "DisassociateRouteTable" => routing::disassociate_route_table(self, &request),
974            "ReplaceRouteTableAssociation" => {
975                routing::replace_route_table_association(self, &request)
976            }
977            "CreateInternetGateway" => routing::create_internet_gateway(self, &request),
978            "DeleteInternetGateway" => routing::delete_internet_gateway(self, &request),
979            "DescribeInternetGateways" => routing::describe_internet_gateways(self, &request),
980            "AttachInternetGateway" => routing::attach_internet_gateway(self, &request),
981            "DetachInternetGateway" => routing::detach_internet_gateway(self, &request),
982            "CreateEgressOnlyInternetGateway" => routing::create_egress_only_igw(self, &request),
983            "DeleteEgressOnlyInternetGateway" => routing::delete_egress_only_igw(self, &request),
984            "DescribeEgressOnlyInternetGateways" => {
985                routing::describe_egress_only_igws(self, &request)
986            }
987            "CreateNatGateway" => routing::create_nat_gateway(self, &request),
988            "DeleteNatGateway" => routing::delete_nat_gateway(self, &request),
989            "DescribeNatGateways" => routing::describe_nat_gateways(self, &request),
990            "AssignPrivateNatGatewayAddress" => {
991                routing::assign_private_nat_gateway_address(self, &request)
992            }
993            "AssociateNatGatewayAddress" => routing::associate_nat_gateway_address(self, &request),
994            "DisassociateNatGatewayAddress" => {
995                routing::disassociate_nat_gateway_address(self, &request)
996            }
997            "UnassignPrivateNatGatewayAddress" => {
998                routing::unassign_private_nat_gateway_address(self, &request)
999            }
1000            "AllocateAddress" => eip::allocate_address(self, &request),
1001            "ReleaseAddress" => eip::release_address(self, &request),
1002            "DescribeAddresses" => eip::describe_addresses(self, &request),
1003            "AssociateAddress" => eip::associate_address(self, &request),
1004            "DisassociateAddress" => eip::disassociate_address(self, &request),
1005            "DescribeAddressesAttribute" => eip::describe_addresses_attribute(self, &request),
1006            "ModifyAddressAttribute" => eip::modify_address_attribute(self, &request),
1007            "ResetAddressAttribute" => eip::reset_address_attribute(self, &request),
1008            "MoveAddressToVpc" => eip::move_address_to_vpc(self, &request),
1009            "RestoreAddressToClassic" => eip::restore_address_to_classic(self, &request),
1010            "AcceptAddressTransfer" => eip::accept_address_transfer(self, &request),
1011            "EnableAddressTransfer" => eip::enable_address_transfer(self, &request),
1012            "DisableAddressTransfer" => eip::disable_address_transfer(self, &request),
1013            "DescribeAddressTransfers" => eip::describe_address_transfers(self, &request),
1014            "DescribeMovingAddresses" => eip::describe_moving_addresses(self, &request),
1015            "CreateKeyPair" => eip::create_key_pair(self, &request),
1016            "ImportKeyPair" => eip::import_key_pair(self, &request),
1017            "DeleteKeyPair" => eip::delete_key_pair(self, &request),
1018            "DescribeKeyPairs" => eip::describe_key_pairs(self, &request),
1019            "CreatePlacementGroup" => eip::create_placement_group(self, &request),
1020            "DeletePlacementGroup" => eip::delete_placement_group(self, &request),
1021            "DescribePlacementGroups" => eip::describe_placement_groups(self, &request),
1022            "GetGroupsForCapacityReservation" => {
1023                eip::get_groups_for_capacity_reservation(self, &request)
1024            }
1025            "CreateNetworkInterface" => eni::create_network_interface(self, &request),
1026            "DeleteNetworkInterface" => eni::delete_network_interface(self, &request),
1027            "DescribeNetworkInterfaces" => eni::describe_network_interfaces(self, &request),
1028            "AttachNetworkInterface" => eni::attach_network_interface(self, &request),
1029            "DetachNetworkInterface" => eni::detach_network_interface(self, &request),
1030            "ModifyNetworkInterfaceAttribute" => {
1031                eni::modify_network_interface_attribute(self, &request)
1032            }
1033            "ResetNetworkInterfaceAttribute" => {
1034                eni::reset_network_interface_attribute(self, &request)
1035            }
1036            "DescribeNetworkInterfaceAttribute" => {
1037                eni::describe_network_interface_attribute(self, &request)
1038            }
1039            "CreateNetworkInterfacePermission" => {
1040                eni::create_network_interface_permission(self, &request)
1041            }
1042            "DeleteNetworkInterfacePermission" => {
1043                eni::delete_network_interface_permission(self, &request)
1044            }
1045            "DescribeNetworkInterfacePermissions" => {
1046                eni::describe_network_interface_permissions(self, &request)
1047            }
1048            "AssignPrivateIpAddresses" => eni::assign_private_ip_addresses(self, &request),
1049            "UnassignPrivateIpAddresses" => eni::unassign_private_ip_addresses(self, &request),
1050            "AssignIpv6Addresses" => eni::assign_ipv6_addresses(self, &request),
1051            "UnassignIpv6Addresses" => eni::unassign_ipv6_addresses(self, &request),
1052            "RunInstances" => instance::run_instances(self, &request),
1053            "StartInstances" => instance::start_instances(self, &request),
1054            "StopInstances" => instance::stop_instances(self, &request),
1055            "RebootInstances" => instance::reboot_instances(self, &request),
1056            "TerminateInstances" => instance::terminate_instances(self, &request),
1057            "MonitorInstances" => instance::monitor_instances(self, &request),
1058            "UnmonitorInstances" => instance::unmonitor_instances(self, &request),
1059            "DescribeInstances" => instance::describe_instances(self, &request),
1060            "DescribeInstanceStatus" => instance::describe_instance_status(self, &request),
1061            "DescribeInstanceTypes" => instance::describe_instance_types(self, &request),
1062            "GetInstanceTypesFromInstanceRequirements" => {
1063                instance::get_instance_types_from_requirements(self, &request)
1064            }
1065            "DescribeInstanceAttribute" => instance::describe_instance_attribute(self, &request),
1066            "ModifyInstanceAttribute" => instance::modify_instance_attribute(self, &request),
1067            "ResetInstanceAttribute" => instance::reset_instance_attribute(self, &request),
1068            "ModifyInstancePlacement" => instance::modify_instance_placement(self, &request),
1069            "ModifyInstanceMetadataOptions" => {
1070                instance::modify_instance_metadata_options(self, &request)
1071            }
1072            "ModifyInstanceMaintenanceOptions" => {
1073                instance::modify_instance_maintenance_options(self, &request)
1074            }
1075            "ModifyInstanceCpuOptions" => instance::modify_instance_cpu_options(self, &request),
1076            "ModifyInstanceNetworkPerformanceOptions" => {
1077                instance::modify_instance_network_performance_options(self, &request)
1078            }
1079            "ModifyInstanceEventStartTime" => {
1080                instance::modify_instance_event_start_time(self, &request)
1081            }
1082            "DescribeInstanceCreditSpecifications" => {
1083                instance::describe_instance_credit_specifications(self, &request)
1084            }
1085            "ModifyInstanceCreditSpecification" => {
1086                instance::modify_instance_credit_specification(self, &request)
1087            }
1088            "GetInstanceMetadataDefaults" => {
1089                instance::get_instance_metadata_defaults(self, &request)
1090            }
1091            "ModifyInstanceMetadataDefaults" => {
1092                instance::modify_instance_metadata_defaults(self, &request)
1093            }
1094            "RegisterInstanceEventNotificationAttributes" => {
1095                instance::register_event_notification_attributes(self, &request)
1096            }
1097            "DeregisterInstanceEventNotificationAttributes" => {
1098                instance::deregister_event_notification_attributes(self, &request)
1099            }
1100            "DescribeInstanceEventNotificationAttributes" => {
1101                instance::describe_event_notification_attributes(self, &request)
1102            }
1103            "ReportInstanceStatus" => instance::report_instance_status(self, &request),
1104            "DescribeInstanceTopology" => instance::describe_instance_topology(self, &request),
1105            "CreateVolume" => volume::create_volume(self, &request),
1106            "DeleteVolume" => volume::delete_volume(self, &request),
1107            "DescribeVolumes" => volume::describe_volumes(self, &request),
1108            "AttachVolume" => volume::attach_volume(self, &request),
1109            "DetachVolume" => volume::detach_volume(self, &request),
1110            "ModifyVolume" => volume::modify_volume(self, &request),
1111            "DescribeVolumesModifications" => {
1112                volume::describe_volumes_modifications(self, &request)
1113            }
1114            "DescribeVolumeStatus" => volume::describe_volume_status(self, &request),
1115            "DescribeVolumeAttribute" => volume::describe_volume_attribute(self, &request),
1116            "ModifyVolumeAttribute" => volume::modify_volume_attribute(self, &request),
1117            "EnableVolumeIO" => volume::enable_volume_io(self, &request),
1118            "ListVolumesInRecycleBin" => volume::list_volumes_in_recycle_bin(self, &request),
1119            "RestoreVolumeFromRecycleBin" => {
1120                volume::restore_volume_from_recycle_bin(self, &request)
1121            }
1122            "GetEbsEncryptionByDefault" => volume::get_ebs_encryption_by_default(self, &request),
1123            "EnableEbsEncryptionByDefault" => {
1124                volume::enable_ebs_encryption_by_default(self, &request)
1125            }
1126            "DisableEbsEncryptionByDefault" => {
1127                volume::disable_ebs_encryption_by_default(self, &request)
1128            }
1129            "GetEbsDefaultKmsKeyId" => volume::get_ebs_default_kms_key_id(self, &request),
1130            "ModifyEbsDefaultKmsKeyId" => volume::modify_ebs_default_kms_key_id(self, &request),
1131            "ResetEbsDefaultKmsKeyId" => volume::reset_ebs_default_kms_key_id(self, &request),
1132            "CreateSnapshot" => snapshot::create_snapshot(self, &request),
1133            "CreateSnapshots" => snapshot::create_snapshots(self, &request),
1134            "DeleteSnapshot" => snapshot::delete_snapshot(self, &request),
1135            "DescribeSnapshots" => snapshot::describe_snapshots(self, &request),
1136            "CopySnapshot" => snapshot::copy_snapshot(self, &request),
1137            "DescribeSnapshotAttribute" => snapshot::describe_snapshot_attribute(self, &request),
1138            "ModifySnapshotAttribute" => snapshot::modify_snapshot_attribute(self, &request),
1139            "ResetSnapshotAttribute" => snapshot::reset_snapshot_attribute(self, &request),
1140            "ModifySnapshotTier" => snapshot::modify_snapshot_tier(self, &request),
1141            "DescribeSnapshotTierStatus" => snapshot::describe_snapshot_tier_status(self, &request),
1142            "RestoreSnapshotTier" => snapshot::restore_snapshot_tier(self, &request),
1143            "ListSnapshotsInRecycleBin" => snapshot::list_snapshots_in_recycle_bin(self, &request),
1144            "RestoreSnapshotFromRecycleBin" => {
1145                snapshot::restore_snapshot_from_recycle_bin(self, &request)
1146            }
1147            "LockSnapshot" => snapshot::lock_snapshot(self, &request),
1148            "UnlockSnapshot" => snapshot::unlock_snapshot(self, &request),
1149            "DescribeLockedSnapshots" => snapshot::describe_locked_snapshots(self, &request),
1150            "GetSnapshotBlockPublicAccessState" => {
1151                snapshot::get_snapshot_block_public_access_state(self, &request)
1152            }
1153            "EnableSnapshotBlockPublicAccess" => {
1154                snapshot::enable_snapshot_block_public_access(self, &request)
1155            }
1156            "DisableSnapshotBlockPublicAccess" => {
1157                snapshot::disable_snapshot_block_public_access(self, &request)
1158            }
1159            "EnableFastSnapshotRestores" => snapshot::enable_fast_snapshot_restores(self, &request),
1160            "DisableFastSnapshotRestores" => {
1161                snapshot::disable_fast_snapshot_restores(self, &request)
1162            }
1163            "DescribeFastSnapshotRestores" => {
1164                snapshot::describe_fast_snapshot_restores(self, &request)
1165            }
1166            "CreateImage" => image::create_image(self, &request),
1167            "RegisterImage" => image::register_image(self, &request),
1168            "DeregisterImage" => image::deregister_image(self, &request),
1169            "DescribeImages" => image::describe_images(self, &request),
1170            "CopyImage" => image::copy_image(self, &request),
1171            "DescribeImageAttribute" => image::describe_image_attribute(self, &request),
1172            "ModifyImageAttribute" => image::modify_image_attribute(self, &request),
1173            "ResetImageAttribute" => image::reset_image_attribute(self, &request),
1174            "EnableImage" => image::enable_image(self, &request),
1175            "DisableImage" => image::disable_image(self, &request),
1176            "EnableImageDeprecation" => image::enable_image_deprecation(self, &request),
1177            "DisableImageDeprecation" => image::disable_image_deprecation(self, &request),
1178            "EnableImageDeregistrationProtection" => {
1179                image::enable_image_deregistration_protection(self, &request)
1180            }
1181            "DisableImageDeregistrationProtection" => {
1182                image::disable_image_deregistration_protection(self, &request)
1183            }
1184            "CancelImageLaunchPermission" => image::cancel_image_launch_permission(self, &request),
1185            "RestoreImageFromRecycleBin" => image::restore_image_from_recycle_bin(self, &request),
1186            "ListImagesInRecycleBin" => image::list_images_in_recycle_bin(self, &request),
1187            "EnableImageBlockPublicAccess" => {
1188                image::enable_image_block_public_access(self, &request)
1189            }
1190            "DisableImageBlockPublicAccess" => {
1191                image::disable_image_block_public_access(self, &request)
1192            }
1193            "GetImageBlockPublicAccessState" => {
1194                image::get_image_block_public_access_state(self, &request)
1195            }
1196            "EnableAllowedImagesSettings" => image::enable_allowed_images_settings(self, &request),
1197            "DisableAllowedImagesSettings" => {
1198                image::disable_allowed_images_settings(self, &request)
1199            }
1200            "GetAllowedImagesSettings" => image::get_allowed_images_settings(self, &request),
1201            "ReplaceImageCriteriaInAllowedImagesSettings" => {
1202                image::replace_image_criteria_in_allowed_images_settings(self, &request)
1203            }
1204            "CreateStoreImageTask" => image::create_store_image_task(self, &request),
1205            "DescribeStoreImageTasks" => image::describe_store_image_tasks(self, &request),
1206            "CreateRestoreImageTask" => image::create_restore_image_task(self, &request),
1207            "DescribeFastLaunchImages" => image::describe_fast_launch_images(self, &request),
1208            "CreateNetworkAcl" => nacl::create_network_acl(self, &request),
1209            "DeleteNetworkAcl" => nacl::delete_network_acl(self, &request),
1210            "DescribeNetworkAcls" => nacl::describe_network_acls(self, &request),
1211            "CreateNetworkAclEntry" => nacl::create_network_acl_entry(self, &request),
1212            "DeleteNetworkAclEntry" => nacl::delete_network_acl_entry(self, &request),
1213            "ReplaceNetworkAclEntry" => nacl::replace_network_acl_entry(self, &request),
1214            "ReplaceNetworkAclAssociation" => nacl::replace_network_acl_association(self, &request),
1215            "CreateVpcPeeringConnection" => nacl::create_vpc_peering_connection(self, &request),
1216            "DeleteVpcPeeringConnection" => nacl::delete_vpc_peering_connection(self, &request),
1217            "DescribeVpcPeeringConnections" => {
1218                nacl::describe_vpc_peering_connections(self, &request)
1219            }
1220            "AcceptVpcPeeringConnection" => nacl::accept_vpc_peering_connection(self, &request),
1221            "RejectVpcPeeringConnection" => nacl::reject_vpc_peering_connection(self, &request),
1222            "ModifyVpcPeeringConnectionOptions" => {
1223                nacl::modify_vpc_peering_connection_options(self, &request)
1224            }
1225            "CreateVpcEndpoint" => endpoint::create_vpc_endpoint(self, &request),
1226            "DeleteVpcEndpoints" => endpoint::delete_vpc_endpoints(self, &request),
1227            "DescribeVpcEndpoints" => endpoint::describe_vpc_endpoints(self, &request),
1228            "ModifyVpcEndpoint" => endpoint::modify_vpc_endpoint(self, &request),
1229            "DescribeVpcEndpointServices" => {
1230                endpoint::describe_vpc_endpoint_services(self, &request)
1231            }
1232            "DescribeVpcEndpointConnections" => {
1233                endpoint::describe_vpc_endpoint_connections(self, &request)
1234            }
1235            "AcceptVpcEndpointConnections" => {
1236                endpoint::accept_vpc_endpoint_connections(self, &request)
1237            }
1238            "RejectVpcEndpointConnections" => {
1239                endpoint::reject_vpc_endpoint_connections(self, &request)
1240            }
1241            "CreateVpcEndpointServiceConfiguration" => {
1242                endpoint::create_vpc_endpoint_service_configuration(self, &request)
1243            }
1244            "DeleteVpcEndpointServiceConfigurations" => {
1245                endpoint::delete_vpc_endpoint_service_configurations(self, &request)
1246            }
1247            "DescribeVpcEndpointServiceConfigurations" => {
1248                endpoint::describe_vpc_endpoint_service_configurations(self, &request)
1249            }
1250            "ModifyVpcEndpointServiceConfiguration" => {
1251                endpoint::modify_vpc_endpoint_service_configuration(self, &request)
1252            }
1253            "DescribeVpcEndpointServicePermissions" => {
1254                endpoint::describe_vpc_endpoint_service_permissions(self, &request)
1255            }
1256            "ModifyVpcEndpointServicePermissions" => {
1257                endpoint::modify_vpc_endpoint_service_permissions(self, &request)
1258            }
1259            "ModifyVpcEndpointServicePayerResponsibility" => {
1260                endpoint::modify_vpc_endpoint_service_payer_responsibility(self, &request)
1261            }
1262            "StartVpcEndpointServicePrivateDnsVerification" => {
1263                endpoint::start_vpc_endpoint_service_private_dns_verification(self, &request)
1264            }
1265            "CreateVpcEndpointConnectionNotification" => {
1266                endpoint::create_vpc_endpoint_connection_notification(self, &request)
1267            }
1268            "DeleteVpcEndpointConnectionNotifications" => {
1269                endpoint::delete_vpc_endpoint_connection_notifications(self, &request)
1270            }
1271            "DescribeVpcEndpointConnectionNotifications" => {
1272                endpoint::describe_vpc_endpoint_connection_notifications(self, &request)
1273            }
1274            "ModifyVpcEndpointConnectionNotification" => {
1275                endpoint::modify_vpc_endpoint_connection_notification(self, &request)
1276            }
1277            "DescribeVpcEndpointAssociations" => {
1278                endpoint::describe_vpc_endpoint_associations(self, &request)
1279            }
1280            "CreateFlowLogs" => endpoint::create_flow_logs(self, &request),
1281            "DeleteFlowLogs" => endpoint::delete_flow_logs(self, &request),
1282            "DescribeFlowLogs" => endpoint::describe_flow_logs(self, &request),
1283            "GetFlowLogsIntegrationTemplate" => {
1284                endpoint::get_flow_logs_integration_template(self, &request)
1285            }
1286            "CreateLaunchTemplate" => fleet::create_launch_template(self, &request),
1287            "CreateLaunchTemplateVersion" => fleet::create_launch_template_version(self, &request),
1288            "DeleteLaunchTemplate" => fleet::delete_launch_template(self, &request),
1289            "DeleteLaunchTemplateVersions" => {
1290                fleet::delete_launch_template_versions(self, &request)
1291            }
1292            "DescribeLaunchTemplates" => fleet::describe_launch_templates(self, &request),
1293            "DescribeLaunchTemplateVersions" => {
1294                fleet::describe_launch_template_versions(self, &request)
1295            }
1296            "GetLaunchTemplateData" => fleet::get_launch_template_data(self, &request),
1297            "ModifyLaunchTemplate" => fleet::modify_launch_template(self, &request),
1298            "RequestSpotInstances" => fleet::request_spot_instances(self, &request),
1299            "DescribeSpotInstanceRequests" => {
1300                fleet::describe_spot_instance_requests(self, &request)
1301            }
1302            "CancelSpotInstanceRequests" => fleet::cancel_spot_instance_requests(self, &request),
1303            "RequestSpotFleet" => fleet::request_spot_fleet(self, &request),
1304            "DescribeSpotFleetRequests" => fleet::describe_spot_fleet_requests(self, &request),
1305            "CancelSpotFleetRequests" => fleet::cancel_spot_fleet_requests(self, &request),
1306            "ModifySpotFleetRequest" => fleet::modify_spot_fleet_request(self, &request),
1307            "DescribeSpotFleetInstances" => fleet::describe_spot_fleet_instances(self, &request),
1308            "DescribeSpotFleetRequestHistory" => {
1309                fleet::describe_spot_fleet_request_history(self, &request)
1310            }
1311            "DescribeSpotPriceHistory" => fleet::describe_spot_price_history(self, &request),
1312            "GetSpotPlacementScores" => fleet::get_spot_placement_scores(self, &request),
1313            "CreateSpotDatafeedSubscription" => {
1314                fleet::create_spot_datafeed_subscription(self, &request)
1315            }
1316            "DeleteSpotDatafeedSubscription" => {
1317                fleet::delete_spot_datafeed_subscription(self, &request)
1318            }
1319            "DescribeSpotDatafeedSubscription" => {
1320                fleet::describe_spot_datafeed_subscription(self, &request)
1321            }
1322            "CreateFleet" => fleet::create_fleet(self, &request),
1323            "DeleteFleets" => fleet::delete_fleets(self, &request),
1324            "DescribeFleets" => fleet::describe_fleets(self, &request),
1325            "ModifyFleet" => fleet::modify_fleet(self, &request),
1326            "DescribeFleetHistory" => fleet::describe_fleet_history(self, &request),
1327            "DescribeFleetInstances" => fleet::describe_fleet_instances(self, &request),
1328            "CreateCapacityReservation" => capacity::create_capacity_reservation(self, &request),
1329            "CancelCapacityReservation" => capacity::cancel_capacity_reservation(self, &request),
1330            "DescribeCapacityReservations" => {
1331                capacity::describe_capacity_reservations(self, &request)
1332            }
1333            "ModifyCapacityReservation" => capacity::modify_capacity_reservation(self, &request),
1334            "GetCapacityReservationUsage" => {
1335                capacity::get_capacity_reservation_usage(self, &request)
1336            }
1337            "CreateCapacityReservationFleet" => {
1338                capacity::create_capacity_reservation_fleet(self, &request)
1339            }
1340            "CancelCapacityReservationFleets" => {
1341                capacity::cancel_capacity_reservation_fleets(self, &request)
1342            }
1343            "DescribeCapacityReservationFleets" => {
1344                capacity::describe_capacity_reservation_fleets(self, &request)
1345            }
1346            "ModifyCapacityReservationFleet" => {
1347                capacity::modify_capacity_reservation_fleet(self, &request)
1348            }
1349            "ModifyInstanceCapacityReservationAttributes" => {
1350                capacity::modify_instance_capacity_reservation_attributes(self, &request)
1351            }
1352            "CreateCapacityReservationBySplitting" => {
1353                capacity::create_capacity_reservation_by_splitting(self, &request)
1354            }
1355            "MoveCapacityReservationInstances" => {
1356                capacity::move_capacity_reservation_instances(self, &request)
1357            }
1358            "DescribeCapacityReservationBillingRequests" => {
1359                capacity::describe_capacity_reservation_billing_requests(self, &request)
1360            }
1361            "AssociateCapacityReservationBillingOwner" => {
1362                capacity::associate_capacity_reservation_billing_owner(self, &request)
1363            }
1364            "DisassociateCapacityReservationBillingOwner" => {
1365                capacity::disassociate_capacity_reservation_billing_owner(self, &request)
1366            }
1367            "AcceptCapacityReservationBillingOwnership" => {
1368                capacity::accept_capacity_reservation_billing_ownership(self, &request)
1369            }
1370            "RejectCapacityReservationBillingOwnership" => {
1371                capacity::reject_capacity_reservation_billing_ownership(self, &request)
1372            }
1373            "DescribeCapacityBlockOfferings" => {
1374                capacity::describe_capacity_block_offerings(self, &request)
1375            }
1376            "DescribeCapacityBlocks" => capacity::describe_capacity_blocks(self, &request),
1377            "PurchaseCapacityBlock" => capacity::purchase_capacity_block(self, &request),
1378            "DescribeCapacityBlockStatus" => {
1379                capacity::describe_capacity_block_status(self, &request)
1380            }
1381            "DescribeCapacityBlockExtensionHistory" => {
1382                capacity::describe_capacity_block_extension_history(self, &request)
1383            }
1384            "DescribeCapacityBlockExtensionOfferings" => {
1385                capacity::describe_capacity_block_extension_offerings(self, &request)
1386            }
1387            "PurchaseCapacityBlockExtension" => {
1388                capacity::purchase_capacity_block_extension(self, &request)
1389            }
1390            "DescribeCapacityReservationTopology" => {
1391                capacity::describe_capacity_reservation_topology(self, &request)
1392            }
1393            "CreateInterruptibleCapacityReservationAllocation" => {
1394                capacity::create_interruptible_capacity_reservation_allocation(self, &request)
1395            }
1396            "UpdateInterruptibleCapacityReservationAllocation" => {
1397                capacity::update_interruptible_capacity_reservation_allocation(self, &request)
1398            }
1399            "DescribeReservedInstances" => reserved::describe_reserved_instances(self, &request),
1400            "DescribeReservedInstancesOfferings" => {
1401                reserved::describe_reserved_instances_offerings(self, &request)
1402            }
1403            "PurchaseReservedInstancesOffering" => {
1404                reserved::purchase_reserved_instances_offering(self, &request)
1405            }
1406            "DescribeReservedInstancesListings" => {
1407                reserved::describe_reserved_instances_listings(self, &request)
1408            }
1409            "CreateReservedInstancesListing" => {
1410                reserved::create_reserved_instances_listing(self, &request)
1411            }
1412            "CancelReservedInstancesListing" => {
1413                reserved::cancel_reserved_instances_listing(self, &request)
1414            }
1415            "DescribeReservedInstancesModifications" => {
1416                reserved::describe_reserved_instances_modifications(self, &request)
1417            }
1418            "ModifyReservedInstances" => reserved::modify_reserved_instances(self, &request),
1419            "GetReservedInstancesExchangeQuote" => {
1420                reserved::get_reserved_instances_exchange_quote(self, &request)
1421            }
1422            "AcceptReservedInstancesExchangeQuote" => {
1423                reserved::accept_reserved_instances_exchange_quote(self, &request)
1424            }
1425            "DeleteQueuedReservedInstances" => {
1426                reserved::delete_queued_reserved_instances(self, &request)
1427            }
1428            "AllocateHosts" => reserved::allocate_hosts(self, &request),
1429            "DescribeHosts" => reserved::describe_hosts(self, &request),
1430            "ModifyHosts" => reserved::modify_hosts(self, &request),
1431            "ReleaseHosts" => reserved::release_hosts(self, &request),
1432            "DescribeMacHosts" => reserved::describe_mac_hosts(self, &request),
1433            "CreateTransitGateway" => tgw::create_transit_gateway(self, &request),
1434            "DeleteTransitGateway" => tgw::delete_transit_gateway(self, &request),
1435            "DescribeTransitGateways" => tgw::describe_transit_gateways(self, &request),
1436            "ModifyTransitGateway" => tgw::modify_transit_gateway(self, &request),
1437            "CreateTransitGatewayVpcAttachment" => {
1438                tgw::create_transit_gateway_vpc_attachment(self, &request)
1439            }
1440            "DeleteTransitGatewayVpcAttachment" => {
1441                tgw::delete_transit_gateway_vpc_attachment(self, &request)
1442            }
1443            "DescribeTransitGatewayVpcAttachments" => {
1444                tgw::describe_transit_gateway_vpc_attachments(self, &request)
1445            }
1446            "ModifyTransitGatewayVpcAttachment" => {
1447                tgw::modify_transit_gateway_vpc_attachment(self, &request)
1448            }
1449            "AcceptTransitGatewayVpcAttachment" => {
1450                tgw::accept_transit_gateway_vpc_attachment(self, &request)
1451            }
1452            "RejectTransitGatewayVpcAttachment" => {
1453                tgw::reject_transit_gateway_vpc_attachment(self, &request)
1454            }
1455            "DescribeTransitGatewayAttachments" => {
1456                tgw::describe_transit_gateway_attachments(self, &request)
1457            }
1458            "CreateTransitGatewayRouteTable" => {
1459                tgw::create_transit_gateway_route_table(self, &request)
1460            }
1461            "DeleteTransitGatewayRouteTable" => {
1462                tgw::delete_transit_gateway_route_table(self, &request)
1463            }
1464            "DescribeTransitGatewayRouteTables" => {
1465                tgw::describe_transit_gateway_route_tables(self, &request)
1466            }
1467            "AssociateTransitGatewayRouteTable" => {
1468                tgw::associate_transit_gateway_route_table(self, &request)
1469            }
1470            "DisassociateTransitGatewayRouteTable" => {
1471                tgw::disassociate_transit_gateway_route_table(self, &request)
1472            }
1473            "EnableTransitGatewayRouteTablePropagation" => {
1474                tgw::enable_transit_gateway_route_table_propagation(self, &request)
1475            }
1476            "DisableTransitGatewayRouteTablePropagation" => {
1477                tgw::disable_transit_gateway_route_table_propagation(self, &request)
1478            }
1479            "CreateTransitGatewayRoute" => tgw::create_transit_gateway_route(self, &request),
1480            "DeleteTransitGatewayRoute" => tgw::delete_transit_gateway_route(self, &request),
1481            "ReplaceTransitGatewayRoute" => tgw::replace_transit_gateway_route(self, &request),
1482            "SearchTransitGatewayRoutes" => tgw::search_transit_gateway_routes(self, &request),
1483            "ExportTransitGatewayRoutes" => tgw::export_transit_gateway_routes(self, &request),
1484            "GetTransitGatewayRouteTableAssociations" => {
1485                tgw::get_transit_gateway_route_table_associations(self, &request)
1486            }
1487            "GetTransitGatewayRouteTablePropagations" => {
1488                tgw::get_transit_gateway_route_table_propagations(self, &request)
1489            }
1490            "GetTransitGatewayAttachmentPropagations" => {
1491                tgw::get_transit_gateway_attachment_propagations(self, &request)
1492            }
1493            "CreateTransitGatewayPrefixListReference" => {
1494                tgw::create_transit_gateway_prefix_list_reference(self, &request)
1495            }
1496            "DeleteTransitGatewayPrefixListReference" => {
1497                tgw::delete_transit_gateway_prefix_list_reference(self, &request)
1498            }
1499            "ModifyTransitGatewayPrefixListReference" => {
1500                tgw::modify_transit_gateway_prefix_list_reference(self, &request)
1501            }
1502            "GetTransitGatewayPrefixListReferences" => {
1503                tgw::get_transit_gateway_prefix_list_references(self, &request)
1504            }
1505            "CreateTransitGatewayPeeringAttachment" => {
1506                tgw_peering::create_transit_gateway_peering_attachment(self, &request)
1507            }
1508            "DeleteTransitGatewayPeeringAttachment" => {
1509                tgw_peering::delete_transit_gateway_peering_attachment(self, &request)
1510            }
1511            "DescribeTransitGatewayPeeringAttachments" => {
1512                tgw_peering::describe_transit_gateway_peering_attachments(self, &request)
1513            }
1514            "AcceptTransitGatewayPeeringAttachment" => {
1515                tgw_peering::accept_transit_gateway_peering_attachment(self, &request)
1516            }
1517            "RejectTransitGatewayPeeringAttachment" => {
1518                tgw_peering::reject_transit_gateway_peering_attachment(self, &request)
1519            }
1520            "CreateTransitGatewayConnect" => {
1521                tgw_peering::create_transit_gateway_connect(self, &request)
1522            }
1523            "DeleteTransitGatewayConnect" => {
1524                tgw_peering::delete_transit_gateway_connect(self, &request)
1525            }
1526            "DescribeTransitGatewayConnects" => {
1527                tgw_peering::describe_transit_gateway_connects(self, &request)
1528            }
1529            "CreateTransitGatewayConnectPeer" => {
1530                tgw_peering::create_transit_gateway_connect_peer(self, &request)
1531            }
1532            "DeleteTransitGatewayConnectPeer" => {
1533                tgw_peering::delete_transit_gateway_connect_peer(self, &request)
1534            }
1535            "DescribeTransitGatewayConnectPeers" => {
1536                tgw_peering::describe_transit_gateway_connect_peers(self, &request)
1537            }
1538            "CreateTransitGatewayPolicyTable" => {
1539                tgw_peering::create_transit_gateway_policy_table(self, &request)
1540            }
1541            "DeleteTransitGatewayPolicyTable" => {
1542                tgw_peering::delete_transit_gateway_policy_table(self, &request)
1543            }
1544            "DescribeTransitGatewayPolicyTables" => {
1545                tgw_peering::describe_transit_gateway_policy_tables(self, &request)
1546            }
1547            "AssociateTransitGatewayPolicyTable" => {
1548                tgw_peering::associate_transit_gateway_policy_table(self, &request)
1549            }
1550            "DisassociateTransitGatewayPolicyTable" => {
1551                tgw_peering::disassociate_transit_gateway_policy_table(self, &request)
1552            }
1553            "GetTransitGatewayPolicyTableAssociations" => {
1554                tgw_peering::get_transit_gateway_policy_table_associations(self, &request)
1555            }
1556            "GetTransitGatewayPolicyTableEntries" => {
1557                tgw_peering::get_transit_gateway_policy_table_entries(self, &request)
1558            }
1559            "CreateTransitGatewayRouteTableAnnouncement" => {
1560                tgw_peering::create_transit_gateway_route_table_announcement(self, &request)
1561            }
1562            "DeleteTransitGatewayRouteTableAnnouncement" => {
1563                tgw_peering::delete_transit_gateway_route_table_announcement(self, &request)
1564            }
1565            "DescribeTransitGatewayRouteTableAnnouncements" => {
1566                tgw_peering::describe_transit_gateway_route_table_announcements(self, &request)
1567            }
1568            "CreateTransitGatewayMulticastDomain" => {
1569                tgw_mcast::create_transit_gateway_multicast_domain(self, &request)
1570            }
1571            "DeleteTransitGatewayMulticastDomain" => {
1572                tgw_mcast::delete_transit_gateway_multicast_domain(self, &request)
1573            }
1574            "DescribeTransitGatewayMulticastDomains" => {
1575                tgw_mcast::describe_transit_gateway_multicast_domains(self, &request)
1576            }
1577            "AssociateTransitGatewayMulticastDomain" => {
1578                tgw_mcast::associate_transit_gateway_multicast_domain(self, &request)
1579            }
1580            "DisassociateTransitGatewayMulticastDomain" => {
1581                tgw_mcast::disassociate_transit_gateway_multicast_domain(self, &request)
1582            }
1583            "AcceptTransitGatewayMulticastDomainAssociations" => {
1584                tgw_mcast::accept_transit_gateway_multicast_domain_associations(self, &request)
1585            }
1586            "RejectTransitGatewayMulticastDomainAssociations" => {
1587                tgw_mcast::reject_transit_gateway_multicast_domain_associations(self, &request)
1588            }
1589            "GetTransitGatewayMulticastDomainAssociations" => {
1590                tgw_mcast::get_transit_gateway_multicast_domain_associations(self, &request)
1591            }
1592            "RegisterTransitGatewayMulticastGroupMembers" => {
1593                tgw_mcast::register_transit_gateway_multicast_group_members(self, &request)
1594            }
1595            "RegisterTransitGatewayMulticastGroupSources" => {
1596                tgw_mcast::register_transit_gateway_multicast_group_sources(self, &request)
1597            }
1598            "DeregisterTransitGatewayMulticastGroupMembers" => {
1599                tgw_mcast::deregister_transit_gateway_multicast_group_members(self, &request)
1600            }
1601            "DeregisterTransitGatewayMulticastGroupSources" => {
1602                tgw_mcast::deregister_transit_gateway_multicast_group_sources(self, &request)
1603            }
1604            "SearchTransitGatewayMulticastGroups" => {
1605                tgw_mcast::search_transit_gateway_multicast_groups(self, &request)
1606            }
1607            "CreateTransitGatewayMeteringPolicy" => {
1608                tgw_mcast::create_transit_gateway_metering_policy(self, &request)
1609            }
1610            "DeleteTransitGatewayMeteringPolicy" => {
1611                tgw_mcast::delete_transit_gateway_metering_policy(self, &request)
1612            }
1613            "DescribeTransitGatewayMeteringPolicies" => {
1614                tgw_mcast::describe_transit_gateway_metering_policies(self, &request)
1615            }
1616            "ModifyTransitGatewayMeteringPolicy" => {
1617                tgw_mcast::modify_transit_gateway_metering_policy(self, &request)
1618            }
1619            "CreateTransitGatewayMeteringPolicyEntry" => {
1620                tgw_mcast::create_transit_gateway_metering_policy_entry(self, &request)
1621            }
1622            "DeleteTransitGatewayMeteringPolicyEntry" => {
1623                tgw_mcast::delete_transit_gateway_metering_policy_entry(self, &request)
1624            }
1625            "GetTransitGatewayMeteringPolicyEntries" => {
1626                tgw_mcast::get_transit_gateway_metering_policy_entries(self, &request)
1627            }
1628            "AcceptTransitGatewayClientVpnAttachment" => {
1629                tgw_mcast::accept_transit_gateway_client_vpn_attachment(self, &request)
1630            }
1631            "DeleteTransitGatewayClientVpnAttachment" => {
1632                tgw_mcast::delete_transit_gateway_client_vpn_attachment(self, &request)
1633            }
1634            "RejectTransitGatewayClientVpnAttachment" => {
1635                tgw_mcast::reject_transit_gateway_client_vpn_attachment(self, &request)
1636            }
1637            "CreateCustomerGateway" => vpn::create_customer_gateway(self, &request),
1638            "DeleteCustomerGateway" => vpn::delete_customer_gateway(self, &request),
1639            "DescribeCustomerGateways" => vpn::describe_customer_gateways(self, &request),
1640            "CreateVpnGateway" => vpn::create_vpn_gateway(self, &request),
1641            "DeleteVpnGateway" => vpn::delete_vpn_gateway(self, &request),
1642            "DescribeVpnGateways" => vpn::describe_vpn_gateways(self, &request),
1643            "AttachVpnGateway" => vpn::attach_vpn_gateway(self, &request),
1644            "DetachVpnGateway" => vpn::detach_vpn_gateway(self, &request),
1645            "CreateVpnConnection" => vpn::create_vpn_connection(self, &request),
1646            "DeleteVpnConnection" => vpn::delete_vpn_connection(self, &request),
1647            "DescribeVpnConnections" => vpn::describe_vpn_connections(self, &request),
1648            "ModifyVpnConnection" => vpn::modify_vpn_connection(self, &request),
1649            "ModifyVpnConnectionOptions" => vpn::modify_vpn_connection_options(self, &request),
1650            "CreateVpnConnectionRoute" => vpn::create_vpn_connection_route(self, &request),
1651            "DeleteVpnConnectionRoute" => vpn::delete_vpn_connection_route(self, &request),
1652            "ModifyVpnTunnelOptions" => vpn::modify_vpn_tunnel_options(self, &request),
1653            "ModifyVpnTunnelCertificate" => vpn::modify_vpn_tunnel_certificate(self, &request),
1654            "ReplaceVpnTunnel" => vpn::replace_vpn_tunnel(self, &request),
1655            "GetActiveVpnTunnelStatus" => vpn::get_active_vpn_tunnel_status(self, &request),
1656            "GetVpnTunnelReplacementStatus" => {
1657                vpn::get_vpn_tunnel_replacement_status(self, &request)
1658            }
1659            "GetVpnConnectionDeviceTypes" => vpn::get_vpn_connection_device_types(self, &request),
1660            "GetVpnConnectionDeviceSampleConfiguration" => {
1661                vpn::get_vpn_connection_device_sample_configuration(self, &request)
1662            }
1663            "CreateVpnConcentrator" => vpn::create_vpn_concentrator(self, &request),
1664            "DeleteVpnConcentrator" => vpn::delete_vpn_concentrator(self, &request),
1665            "DescribeVpnConcentrators" => vpn::describe_vpn_concentrators(self, &request),
1666            "CreateClientVpnEndpoint" => cvpn::create_client_vpn_endpoint(self, &request),
1667            "DeleteClientVpnEndpoint" => cvpn::delete_client_vpn_endpoint(self, &request),
1668            "DescribeClientVpnEndpoints" => cvpn::describe_client_vpn_endpoints(self, &request),
1669            "ModifyClientVpnEndpoint" => cvpn::modify_client_vpn_endpoint(self, &request),
1670            "CreateClientVpnRoute" => cvpn::create_client_vpn_route(self, &request),
1671            "DeleteClientVpnRoute" => cvpn::delete_client_vpn_route(self, &request),
1672            "DescribeClientVpnRoutes" => cvpn::describe_client_vpn_routes(self, &request),
1673            "AuthorizeClientVpnIngress" => cvpn::authorize_client_vpn_ingress(self, &request),
1674            "RevokeClientVpnIngress" => cvpn::revoke_client_vpn_ingress(self, &request),
1675            "DescribeClientVpnAuthorizationRules" => {
1676                cvpn::describe_client_vpn_authorization_rules(self, &request)
1677            }
1678            "AssociateClientVpnTargetNetwork" => {
1679                cvpn::associate_client_vpn_target_network(self, &request)
1680            }
1681            "DisassociateClientVpnTargetNetwork" => {
1682                cvpn::disassociate_client_vpn_target_network(self, &request)
1683            }
1684            "DescribeClientVpnTargetNetworks" => {
1685                cvpn::describe_client_vpn_target_networks(self, &request)
1686            }
1687            "ApplySecurityGroupsToClientVpnTargetNetwork" => {
1688                cvpn::apply_security_groups_to_client_vpn_target_network(self, &request)
1689            }
1690            "DescribeClientVpnConnections" => cvpn::describe_client_vpn_connections(self, &request),
1691            "TerminateClientVpnConnections" => {
1692                cvpn::terminate_client_vpn_connections(self, &request)
1693            }
1694            "ExportClientVpnClientCertificateRevocationList" => {
1695                cvpn::export_client_vpn_client_certificate_revocation_list(self, &request)
1696            }
1697            "ExportClientVpnClientConfiguration" => {
1698                cvpn::export_client_vpn_client_configuration(self, &request)
1699            }
1700            "ImportClientVpnClientCertificateRevocationList" => {
1701                cvpn::import_client_vpn_client_certificate_revocation_list(self, &request)
1702            }
1703            "CreateIpam" => ipam::create_ipam(self, &request),
1704            "DeleteIpam" => ipam::delete_ipam(self, &request),
1705            "DescribeIpams" => ipam::describe_ipams(self, &request),
1706            "ModifyIpam" => ipam::modify_ipam(self, &request),
1707            "CreateIpamScope" => ipam::create_ipam_scope(self, &request),
1708            "DeleteIpamScope" => ipam::delete_ipam_scope(self, &request),
1709            "DescribeIpamScopes" => ipam::describe_ipam_scopes(self, &request),
1710            "ModifyIpamScope" => ipam::modify_ipam_scope(self, &request),
1711            "CreateIpamPool" => ipam::create_ipam_pool(self, &request),
1712            "DeleteIpamPool" => ipam::delete_ipam_pool(self, &request),
1713            "DescribeIpamPools" => ipam::describe_ipam_pools(self, &request),
1714            "ModifyIpamPool" => ipam::modify_ipam_pool(self, &request),
1715            "ProvisionIpamPoolCidr" => ipam::provision_ipam_pool_cidr(self, &request),
1716            "DeprovisionIpamPoolCidr" => ipam::deprovision_ipam_pool_cidr(self, &request),
1717            "GetIpamPoolCidrs" => ipam::get_ipam_pool_cidrs(self, &request),
1718            "AllocateIpamPoolCidr" => ipam::allocate_ipam_pool_cidr(self, &request),
1719            "ReleaseIpamPoolAllocation" => ipam::release_ipam_pool_allocation(self, &request),
1720            "GetIpamPoolAllocations" => ipam::get_ipam_pool_allocations(self, &request),
1721            "GetIpamResourceCidrs" => ipam::get_ipam_resource_cidrs(self, &request),
1722            "ModifyIpamResourceCidr" => ipam::modify_ipam_resource_cidr(self, &request),
1723            "GetIpamAddressHistory" => ipam::get_ipam_address_history(self, &request),
1724            "EnableIpamOrganizationAdminAccount" => {
1725                ipam::enable_ipam_organization_admin_account(self, &request)
1726            }
1727            "DisableIpamOrganizationAdminAccount" => {
1728                ipam::disable_ipam_organization_admin_account(self, &request)
1729            }
1730            "CreateIpamResourceDiscovery" => {
1731                ipam_discovery::create_ipam_resource_discovery(self, &request)
1732            }
1733            "DeleteIpamResourceDiscovery" => {
1734                ipam_discovery::delete_ipam_resource_discovery(self, &request)
1735            }
1736            "DescribeIpamResourceDiscoveries" => {
1737                ipam_discovery::describe_ipam_resource_discoveries(self, &request)
1738            }
1739            "ModifyIpamResourceDiscovery" => {
1740                ipam_discovery::modify_ipam_resource_discovery(self, &request)
1741            }
1742            "AssociateIpamResourceDiscovery" => {
1743                ipam_discovery::associate_ipam_resource_discovery(self, &request)
1744            }
1745            "DisassociateIpamResourceDiscovery" => {
1746                ipam_discovery::disassociate_ipam_resource_discovery(self, &request)
1747            }
1748            "DescribeIpamResourceDiscoveryAssociations" => {
1749                ipam_discovery::describe_ipam_resource_discovery_associations(self, &request)
1750            }
1751            "GetIpamDiscoveredAccounts" => {
1752                ipam_discovery::get_ipam_discovered_accounts(self, &request)
1753            }
1754            "GetIpamDiscoveredPublicAddresses" => {
1755                ipam_discovery::get_ipam_discovered_public_addresses(self, &request)
1756            }
1757            "GetIpamDiscoveredResourceCidrs" => {
1758                ipam_discovery::get_ipam_discovered_resource_cidrs(self, &request)
1759            }
1760            "AssociateIpamByoasn" => ipam_discovery::associate_ipam_byoasn(self, &request),
1761            "DisassociateIpamByoasn" => ipam_discovery::disassociate_ipam_byoasn(self, &request),
1762            "ProvisionIpamByoasn" => ipam_discovery::provision_ipam_byoasn(self, &request),
1763            "DeprovisionIpamByoasn" => ipam_discovery::deprovision_ipam_byoasn(self, &request),
1764            "DescribeIpamByoasn" => ipam_discovery::describe_ipam_byoasn(self, &request),
1765            "MoveByoipCidrToIpam" => ipam_discovery::move_byoip_cidr_to_ipam(self, &request),
1766            "CreateIpamExternalResourceVerificationToken" => {
1767                ipam_discovery::create_ipam_external_resource_verification_token(self, &request)
1768            }
1769            "DeleteIpamExternalResourceVerificationToken" => {
1770                ipam_discovery::delete_ipam_external_resource_verification_token(self, &request)
1771            }
1772            "DescribeIpamExternalResourceVerificationTokens" => {
1773                ipam_discovery::describe_ipam_external_resource_verification_tokens(self, &request)
1774            }
1775            "CreateIpamPolicy" => ipam_policy::create_ipam_policy(self, &request),
1776            "DeleteIpamPolicy" => ipam_policy::delete_ipam_policy(self, &request),
1777            "DescribeIpamPolicies" => ipam_policy::describe_ipam_policies(self, &request),
1778            "EnableIpamPolicy" => ipam_policy::enable_ipam_policy(self, &request),
1779            "DisableIpamPolicy" => ipam_policy::disable_ipam_policy(self, &request),
1780            "GetEnabledIpamPolicy" => ipam_policy::get_enabled_ipam_policy(self, &request),
1781            "GetIpamPolicyAllocationRules" => {
1782                ipam_policy::get_ipam_policy_allocation_rules(self, &request)
1783            }
1784            "ModifyIpamPolicyAllocationRules" => {
1785                ipam_policy::modify_ipam_policy_allocation_rules(self, &request)
1786            }
1787            "GetIpamPolicyOrganizationTargets" => {
1788                ipam_policy::get_ipam_policy_organization_targets(self, &request)
1789            }
1790            "CreateIpamPrefixListResolver" => {
1791                ipam_policy::create_ipam_prefix_list_resolver(self, &request)
1792            }
1793            "DeleteIpamPrefixListResolver" => {
1794                ipam_policy::delete_ipam_prefix_list_resolver(self, &request)
1795            }
1796            "DescribeIpamPrefixListResolvers" => {
1797                ipam_policy::describe_ipam_prefix_list_resolvers(self, &request)
1798            }
1799            "ModifyIpamPrefixListResolver" => {
1800                ipam_policy::modify_ipam_prefix_list_resolver(self, &request)
1801            }
1802            "CreateIpamPrefixListResolverTarget" => {
1803                ipam_policy::create_ipam_prefix_list_resolver_target(self, &request)
1804            }
1805            "DeleteIpamPrefixListResolverTarget" => {
1806                ipam_policy::delete_ipam_prefix_list_resolver_target(self, &request)
1807            }
1808            "DescribeIpamPrefixListResolverTargets" => {
1809                ipam_policy::describe_ipam_prefix_list_resolver_targets(self, &request)
1810            }
1811            "ModifyIpamPrefixListResolverTarget" => {
1812                ipam_policy::modify_ipam_prefix_list_resolver_target(self, &request)
1813            }
1814            "GetIpamPrefixListResolverRules" => {
1815                ipam_policy::get_ipam_prefix_list_resolver_rules(self, &request)
1816            }
1817            "GetIpamPrefixListResolverVersions" => {
1818                ipam_policy::get_ipam_prefix_list_resolver_versions(self, &request)
1819            }
1820            "GetIpamPrefixListResolverVersionEntries" => {
1821                ipam_policy::get_ipam_prefix_list_resolver_version_entries(self, &request)
1822            }
1823            "CreateVerifiedAccessInstance" => va::create_verified_access_instance(self, &request),
1824            "DeleteVerifiedAccessInstance" => va::delete_verified_access_instance(self, &request),
1825            "DescribeVerifiedAccessInstances" => {
1826                va::describe_verified_access_instances(self, &request)
1827            }
1828            "ModifyVerifiedAccessInstance" => va::modify_verified_access_instance(self, &request),
1829            "CreateVerifiedAccessTrustProvider" => {
1830                va::create_verified_access_trust_provider(self, &request)
1831            }
1832            "DeleteVerifiedAccessTrustProvider" => {
1833                va::delete_verified_access_trust_provider(self, &request)
1834            }
1835            "DescribeVerifiedAccessTrustProviders" => {
1836                va::describe_verified_access_trust_providers(self, &request)
1837            }
1838            "ModifyVerifiedAccessTrustProvider" => {
1839                va::modify_verified_access_trust_provider(self, &request)
1840            }
1841            "AttachVerifiedAccessTrustProvider" => {
1842                va::attach_verified_access_trust_provider(self, &request)
1843            }
1844            "DetachVerifiedAccessTrustProvider" => {
1845                va::detach_verified_access_trust_provider(self, &request)
1846            }
1847            "CreateVerifiedAccessGroup" => va::create_verified_access_group(self, &request),
1848            "DeleteVerifiedAccessGroup" => va::delete_verified_access_group(self, &request),
1849            "DescribeVerifiedAccessGroups" => va::describe_verified_access_groups(self, &request),
1850            "ModifyVerifiedAccessGroup" => va::modify_verified_access_group(self, &request),
1851            "GetVerifiedAccessGroupPolicy" => va::get_verified_access_group_policy(self, &request),
1852            "ModifyVerifiedAccessGroupPolicy" => {
1853                va::modify_verified_access_group_policy(self, &request)
1854            }
1855            "CreateVerifiedAccessEndpoint" => va::create_verified_access_endpoint(self, &request),
1856            "DeleteVerifiedAccessEndpoint" => va::delete_verified_access_endpoint(self, &request),
1857            "DescribeVerifiedAccessEndpoints" => {
1858                va::describe_verified_access_endpoints(self, &request)
1859            }
1860            "ModifyVerifiedAccessEndpoint" => va::modify_verified_access_endpoint(self, &request),
1861            "GetVerifiedAccessEndpointPolicy" => {
1862                va::get_verified_access_endpoint_policy(self, &request)
1863            }
1864            "ModifyVerifiedAccessEndpointPolicy" => {
1865                va::modify_verified_access_endpoint_policy(self, &request)
1866            }
1867            "GetVerifiedAccessEndpointTargets" => {
1868                va::get_verified_access_endpoint_targets(self, &request)
1869            }
1870            "DescribeVerifiedAccessInstanceLoggingConfigurations" => {
1871                va::describe_verified_access_instance_logging_configurations(self, &request)
1872            }
1873            "ModifyVerifiedAccessInstanceLoggingConfiguration" => {
1874                va::modify_verified_access_instance_logging_configuration(self, &request)
1875            }
1876            "ExportVerifiedAccessInstanceClientConfiguration" => {
1877                va::export_verified_access_instance_client_configuration(self, &request)
1878            }
1879            "CreateNetworkInsightsPath" => ni::create_network_insights_path(self, &request),
1880            "DeleteNetworkInsightsPath" => ni::delete_network_insights_path(self, &request),
1881            "DescribeNetworkInsightsPaths" => ni::describe_network_insights_paths(self, &request),
1882            "StartNetworkInsightsAnalysis" => ni::start_network_insights_analysis(self, &request),
1883            "DeleteNetworkInsightsAnalysis" => ni::delete_network_insights_analysis(self, &request),
1884            "DescribeNetworkInsightsAnalyses" => {
1885                ni::describe_network_insights_analyses(self, &request)
1886            }
1887            "CreateNetworkInsightsAccessScope" => {
1888                ni::create_network_insights_access_scope(self, &request)
1889            }
1890            "DeleteNetworkInsightsAccessScope" => {
1891                ni::delete_network_insights_access_scope(self, &request)
1892            }
1893            "DescribeNetworkInsightsAccessScopes" => {
1894                ni::describe_network_insights_access_scopes(self, &request)
1895            }
1896            "GetNetworkInsightsAccessScopeContent" => {
1897                ni::get_network_insights_access_scope_content(self, &request)
1898            }
1899            "StartNetworkInsightsAccessScopeAnalysis" => {
1900                ni::start_network_insights_access_scope_analysis(self, &request)
1901            }
1902            "DeleteNetworkInsightsAccessScopeAnalysis" => {
1903                ni::delete_network_insights_access_scope_analysis(self, &request)
1904            }
1905            "DescribeNetworkInsightsAccessScopeAnalyses" => {
1906                ni::describe_network_insights_access_scope_analyses(self, &request)
1907            }
1908            "GetNetworkInsightsAccessScopeAnalysisFindings" => {
1909                ni::get_network_insights_access_scope_analysis_findings(self, &request)
1910            }
1911            "CreateCarrierGateway" => lgw::create_carrier_gateway(self, &request),
1912            "DeleteCarrierGateway" => lgw::delete_carrier_gateway(self, &request),
1913            "DescribeCarrierGateways" => lgw::describe_carrier_gateways(self, &request),
1914            "CreateCoipPool" => lgw::create_coip_pool(self, &request),
1915            "DeleteCoipPool" => lgw::delete_coip_pool(self, &request),
1916            "DescribeCoipPools" => lgw::describe_coip_pools(self, &request),
1917            "CreateCoipCidr" => lgw::create_coip_cidr(self, &request),
1918            "DeleteCoipCidr" => lgw::delete_coip_cidr(self, &request),
1919            "GetCoipPoolUsage" => lgw::get_coip_pool_usage(self, &request),
1920            "CreateLocalGatewayRouteTable" => lgw::create_local_gateway_route_table(self, &request),
1921            "DeleteLocalGatewayRouteTable" => lgw::delete_local_gateway_route_table(self, &request),
1922            "DescribeLocalGatewayRouteTables" => {
1923                lgw::describe_local_gateway_route_tables(self, &request)
1924            }
1925            "CreateLocalGatewayRoute" => lgw::create_local_gateway_route(self, &request),
1926            "DeleteLocalGatewayRoute" => lgw::delete_local_gateway_route(self, &request),
1927            "ModifyLocalGatewayRoute" => lgw::modify_local_gateway_route(self, &request),
1928            "SearchLocalGatewayRoutes" => lgw::search_local_gateway_routes(self, &request),
1929            "CreateLocalGatewayRouteTableVpcAssociation" => {
1930                lgw::create_local_gateway_route_table_vpc_association(self, &request)
1931            }
1932            "DeleteLocalGatewayRouteTableVpcAssociation" => {
1933                lgw::delete_local_gateway_route_table_vpc_association(self, &request)
1934            }
1935            "DescribeLocalGatewayRouteTableVpcAssociations" => {
1936                lgw::describe_local_gateway_route_table_vpc_associations(self, &request)
1937            }
1938            "CreateLocalGatewayVirtualInterface" => {
1939                lgw::create_local_gateway_virtual_interface(self, &request)
1940            }
1941            "DeleteLocalGatewayVirtualInterface" => {
1942                lgw::delete_local_gateway_virtual_interface(self, &request)
1943            }
1944            "DescribeLocalGatewayVirtualInterfaces" => {
1945                lgw::describe_local_gateway_virtual_interfaces(self, &request)
1946            }
1947            "CreateLocalGatewayVirtualInterfaceGroup" => {
1948                lgw::create_local_gateway_virtual_interface_group(self, &request)
1949            }
1950            "DeleteLocalGatewayVirtualInterfaceGroup" => {
1951                lgw::delete_local_gateway_virtual_interface_group(self, &request)
1952            }
1953            "DescribeLocalGatewayVirtualInterfaceGroups" => {
1954                lgw::describe_local_gateway_virtual_interface_groups(self, &request)
1955            }
1956            "CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociation" => {
1957                lgw::create_local_gateway_route_table_virtual_interface_group_association(
1958                    self, &request,
1959                )
1960            }
1961            "DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociation" => {
1962                lgw::delete_local_gateway_route_table_virtual_interface_group_association(
1963                    self, &request,
1964                )
1965            }
1966            "DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociations" => {
1967                lgw::describe_local_gateway_route_table_virtual_interface_group_associations(
1968                    self, &request,
1969                )
1970            }
1971            "DescribeLocalGateways" => lgw::describe_local_gateways(self, &request),
1972            "CreateInstanceConnectEndpoint" => {
1973                ice::create_instance_connect_endpoint(self, &request)
1974            }
1975            "DeleteInstanceConnectEndpoint" => {
1976                ice::delete_instance_connect_endpoint(self, &request)
1977            }
1978            "DescribeInstanceConnectEndpoints" => {
1979                ice::describe_instance_connect_endpoints(self, &request)
1980            }
1981            "ModifyInstanceConnectEndpoint" => {
1982                ice::modify_instance_connect_endpoint(self, &request)
1983            }
1984            "EnableFastLaunch" => ice::enable_fast_launch(self, &request),
1985            "DisableFastLaunch" => ice::disable_fast_launch(self, &request),
1986            "EnableSerialConsoleAccess" => ice::enable_serial_console_access(self, &request),
1987            "DisableSerialConsoleAccess" => ice::disable_serial_console_access(self, &request),
1988            "GetSerialConsoleAccessStatus" => ice::get_serial_console_access_status(self, &request),
1989            "GetConsoleOutput" => ice::get_console_output(self, &request),
1990            "GetConsoleScreenshot" => ice::get_console_screenshot(self, &request),
1991            "GetPasswordData" => ice::get_password_data(self, &request),
1992            "AdvertiseByoipCidr" => rest::advertise_byoip_cidr(self, &request),
1993            "AssociateEnclaveCertificateIamRole" => {
1994                rest::associate_enclave_certificate_iam_role(self, &request)
1995            }
1996            "AssociateIamInstanceProfile" => rest::associate_iam_instance_profile(self, &request),
1997            "AssociateInstanceEventWindow" => rest::associate_instance_event_window(self, &request),
1998            "AssociateRouteServer" => rest::associate_route_server(self, &request),
1999            "AssociateTrunkInterface" => rest::associate_trunk_interface(self, &request),
2000            "AttachClassicLinkVpc" => rest::attach_classic_link_vpc(self, &request),
2001            "BundleInstance" => rest::bundle_instance(self, &request),
2002            "CancelBundleTask" => rest::cancel_bundle_task(self, &request),
2003            "CancelConversionTask" => rest::cancel_conversion_task(self, &request),
2004            "CancelDeclarativePoliciesReport" => {
2005                rest::cancel_declarative_policies_report(self, &request)
2006            }
2007            "CancelExportTask" => rest::cancel_export_task(self, &request),
2008            "CancelImportTask" => rest::cancel_import_task(self, &request),
2009            "ConfirmProductInstance" => rest::confirm_product_instance(self, &request),
2010            "CopyFpgaImage" => rest::copy_fpga_image(self, &request),
2011            "CopyVolumes" => rest::copy_volumes(self, &request),
2012            "CreateCapacityManagerDataExport" => {
2013                rest::create_capacity_manager_data_export(self, &request)
2014            }
2015            "CreateDelegateMacVolumeOwnershipTask" => {
2016                rest::create_delegate_mac_volume_ownership_task(self, &request)
2017            }
2018            "CreateFpgaImage" => rest::create_fpga_image(self, &request),
2019            "CreateImageUsageReport" => rest::create_image_usage_report(self, &request),
2020            "CreateInstanceEventWindow" => rest::create_instance_event_window(self, &request),
2021            "CreateInstanceExportTask" => rest::create_instance_export_task(self, &request),
2022            "CreateMacSystemIntegrityProtectionModificationTask" => {
2023                rest::create_mac_system_integrity_protection_modification_task(self, &request)
2024            }
2025            "CreateManagedPrefixList" => rest::create_managed_prefix_list(self, &request),
2026            "CreatePublicIpv4Pool" => rest::create_public_ipv4_pool(self, &request),
2027            "CreateReplaceRootVolumeTask" => rest::create_replace_root_volume_task(self, &request),
2028            "CreateRouteServer" => rest::create_route_server(self, &request),
2029            "CreateRouteServerEndpoint" => rest::create_route_server_endpoint(self, &request),
2030            "CreateRouteServerPeer" => rest::create_route_server_peer(self, &request),
2031            "CreateSecondaryNetwork" => rest::create_secondary_network(self, &request),
2032            "CreateTrafficMirrorFilter" => rest::create_traffic_mirror_filter(self, &request),
2033            "CreateTrafficMirrorFilterRule" => {
2034                rest::create_traffic_mirror_filter_rule(self, &request)
2035            }
2036            "CreateTrafficMirrorSession" => rest::create_traffic_mirror_session(self, &request),
2037            "CreateTrafficMirrorTarget" => rest::create_traffic_mirror_target(self, &request),
2038            "CreateVpcBlockPublicAccessExclusion" => {
2039                rest::create_vpc_block_public_access_exclusion(self, &request)
2040            }
2041            "CreateVpcEncryptionControl" => rest::create_vpc_encryption_control(self, &request),
2042            "DeleteCapacityManagerDataExport" => {
2043                rest::delete_capacity_manager_data_export(self, &request)
2044            }
2045            "DeleteFpgaImage" => rest::delete_fpga_image(self, &request),
2046            "DeleteImageUsageReport" => rest::delete_image_usage_report(self, &request),
2047            "DeleteInstanceEventWindow" => rest::delete_instance_event_window(self, &request),
2048            "DeleteManagedPrefixList" => rest::delete_managed_prefix_list(self, &request),
2049            "DeletePublicIpv4Pool" => rest::delete_public_ipv4_pool(self, &request),
2050            "DeleteRouteServer" => rest::delete_route_server(self, &request),
2051            "DeleteRouteServerEndpoint" => rest::delete_route_server_endpoint(self, &request),
2052            "DeleteRouteServerPeer" => rest::delete_route_server_peer(self, &request),
2053            "DeleteSecondaryNetwork" => rest::delete_secondary_network(self, &request),
2054            "DeleteTrafficMirrorFilter" => rest::delete_traffic_mirror_filter(self, &request),
2055            "DeleteTrafficMirrorFilterRule" => {
2056                rest::delete_traffic_mirror_filter_rule(self, &request)
2057            }
2058            "DeleteTrafficMirrorSession" => rest::delete_traffic_mirror_session(self, &request),
2059            "DeleteTrafficMirrorTarget" => rest::delete_traffic_mirror_target(self, &request),
2060            "DeleteVpcBlockPublicAccessExclusion" => {
2061                rest::delete_vpc_block_public_access_exclusion(self, &request)
2062            }
2063            "DeleteVpcEncryptionControl" => rest::delete_vpc_encryption_control(self, &request),
2064            "DeprovisionByoipCidr" => rest::deprovision_byoip_cidr(self, &request),
2065            "DeprovisionPublicIpv4PoolCidr" => {
2066                rest::deprovision_public_ipv4_pool_cidr(self, &request)
2067            }
2068            "DescribeAggregateIdFormat" => rest::describe_aggregate_id_format(self, &request),
2069            "DescribeAwsNetworkPerformanceMetricSubscriptions" => {
2070                rest::describe_aws_network_performance_metric_subscriptions(self, &request)
2071            }
2072            "DescribeBundleTasks" => rest::describe_bundle_tasks(self, &request),
2073            "DescribeByoipCidrs" => rest::describe_byoip_cidrs(self, &request),
2074            "DescribeCapacityManagerDataExports" => {
2075                rest::describe_capacity_manager_data_exports(self, &request)
2076            }
2077            "DescribeClassicLinkInstances" => rest::describe_classic_link_instances(self, &request),
2078            "DescribeConversionTasks" => rest::describe_conversion_tasks(self, &request),
2079            "DescribeDeclarativePoliciesReports" => {
2080                rest::describe_declarative_policies_reports(self, &request)
2081            }
2082            "DescribeElasticGpus" => rest::describe_elastic_gpus(self, &request),
2083            "DescribeExportImageTasks" => rest::describe_export_image_tasks(self, &request),
2084            "DescribeExportTasks" => rest::describe_export_tasks(self, &request),
2085            "DescribeFpgaImageAttribute" => rest::describe_fpga_image_attribute(self, &request),
2086            "DescribeFpgaImages" => rest::describe_fpga_images(self, &request),
2087            "DescribeHostReservationOfferings" => {
2088                rest::describe_host_reservation_offerings(self, &request)
2089            }
2090            "DescribeHostReservations" => rest::describe_host_reservations(self, &request),
2091            "DescribeIamInstanceProfileAssociations" => {
2092                rest::describe_iam_instance_profile_associations(self, &request)
2093            }
2094            "DescribeIdFormat" => rest::describe_id_format(self, &request),
2095            "DescribeIdentityIdFormat" => rest::describe_identity_id_format(self, &request),
2096            "DescribeImageReferences" => rest::describe_image_references(self, &request),
2097            "DescribeImageUsageReportEntries" => {
2098                rest::describe_image_usage_report_entries(self, &request)
2099            }
2100            "DescribeImageUsageReports" => rest::describe_image_usage_reports(self, &request),
2101            "DescribeImportImageTasks" => rest::describe_import_image_tasks(self, &request),
2102            "DescribeImportSnapshotTasks" => rest::describe_import_snapshot_tasks(self, &request),
2103            "DescribeInstanceEventWindows" => rest::describe_instance_event_windows(self, &request),
2104            "DescribeInstanceImageMetadata" => {
2105                rest::describe_instance_image_metadata(self, &request)
2106            }
2107            "DescribeInstanceSqlHaHistoryStates" => {
2108                rest::describe_instance_sql_ha_history_states(self, &request)
2109            }
2110            "DescribeInstanceSqlHaStates" => rest::describe_instance_sql_ha_states(self, &request),
2111            "DescribeInstanceTypeOfferings" => {
2112                rest::describe_instance_type_offerings(self, &request)
2113            }
2114            "DescribeIpv6Pools" => rest::describe_ipv6_pools(self, &request),
2115            "DescribeMacModificationTasks" => rest::describe_mac_modification_tasks(self, &request),
2116            "DescribeManagedPrefixLists" => rest::describe_managed_prefix_lists(self, &request),
2117            "DescribeOutpostLags" => rest::describe_outpost_lags(self, &request),
2118            "DescribePrefixLists" => rest::describe_prefix_lists(self, &request),
2119            "DescribePrincipalIdFormat" => rest::describe_principal_id_format(self, &request),
2120            "DescribePublicIpv4Pools" => rest::describe_public_ipv4_pools(self, &request),
2121            "DescribeReplaceRootVolumeTasks" => {
2122                rest::describe_replace_root_volume_tasks(self, &request)
2123            }
2124            "DescribeRouteServerEndpoints" => rest::describe_route_server_endpoints(self, &request),
2125            "DescribeRouteServerPeers" => rest::describe_route_server_peers(self, &request),
2126            "DescribeRouteServers" => rest::describe_route_servers(self, &request),
2127            "DescribeScheduledInstanceAvailability" => {
2128                rest::describe_scheduled_instance_availability(self, &request)
2129            }
2130            "DescribeScheduledInstances" => rest::describe_scheduled_instances(self, &request),
2131            "DescribeSecondaryInterfaces" => rest::describe_secondary_interfaces(self, &request),
2132            "DescribeSecondaryNetworks" => rest::describe_secondary_networks(self, &request),
2133            "DescribeServiceLinkVirtualInterfaces" => {
2134                rest::describe_service_link_virtual_interfaces(self, &request)
2135            }
2136            "DescribeTrafficMirrorFilterRules" => {
2137                rest::describe_traffic_mirror_filter_rules(self, &request)
2138            }
2139            "DescribeTrafficMirrorFilters" => rest::describe_traffic_mirror_filters(self, &request),
2140            "DescribeTrafficMirrorSessions" => {
2141                rest::describe_traffic_mirror_sessions(self, &request)
2142            }
2143            "DescribeTrafficMirrorTargets" => rest::describe_traffic_mirror_targets(self, &request),
2144            "DescribeTrunkInterfaceAssociations" => {
2145                rest::describe_trunk_interface_associations(self, &request)
2146            }
2147            "DescribeVpcBlockPublicAccessExclusions" => {
2148                rest::describe_vpc_block_public_access_exclusions(self, &request)
2149            }
2150            "DescribeVpcBlockPublicAccessOptions" => {
2151                rest::describe_vpc_block_public_access_options(self, &request)
2152            }
2153            "DescribeVpcClassicLink" => rest::describe_vpc_classic_link(self, &request),
2154            "DescribeVpcClassicLinkDnsSupport" => {
2155                rest::describe_vpc_classic_link_dns_support(self, &request)
2156            }
2157            "DescribeVpcEncryptionControls" => {
2158                rest::describe_vpc_encryption_controls(self, &request)
2159            }
2160            "DetachClassicLinkVpc" => rest::detach_classic_link_vpc(self, &request),
2161            "DisableAwsNetworkPerformanceMetricSubscription" => {
2162                rest::disable_aws_network_performance_metric_subscription(self, &request)
2163            }
2164            "DisableCapacityManager" => rest::disable_capacity_manager(self, &request),
2165            "DisableInstanceSqlHaStandbyDetections" => {
2166                rest::disable_instance_sql_ha_standby_detections(self, &request)
2167            }
2168            "DisableRouteServerPropagation" => {
2169                rest::disable_route_server_propagation(self, &request)
2170            }
2171            "DisableVgwRoutePropagation" => rest::disable_vgw_route_propagation(self, &request),
2172            "DisableVpcClassicLink" => rest::disable_vpc_classic_link(self, &request),
2173            "DisableVpcClassicLinkDnsSupport" => {
2174                rest::disable_vpc_classic_link_dns_support(self, &request)
2175            }
2176            "DisassociateEnclaveCertificateIamRole" => {
2177                rest::disassociate_enclave_certificate_iam_role(self, &request)
2178            }
2179            "DisassociateIamInstanceProfile" => {
2180                rest::disassociate_iam_instance_profile(self, &request)
2181            }
2182            "DisassociateInstanceEventWindow" => {
2183                rest::disassociate_instance_event_window(self, &request)
2184            }
2185            "DisassociateRouteServer" => rest::disassociate_route_server(self, &request),
2186            "DisassociateTrunkInterface" => rest::disassociate_trunk_interface(self, &request),
2187            "EnableAwsNetworkPerformanceMetricSubscription" => {
2188                rest::enable_aws_network_performance_metric_subscription(self, &request)
2189            }
2190            "EnableCapacityManager" => rest::enable_capacity_manager(self, &request),
2191            "EnableInstanceSqlHaStandbyDetections" => {
2192                rest::enable_instance_sql_ha_standby_detections(self, &request)
2193            }
2194            "EnableReachabilityAnalyzerOrganizationSharing" => {
2195                rest::enable_reachability_analyzer_organization_sharing(self, &request)
2196            }
2197            "EnableRouteServerPropagation" => rest::enable_route_server_propagation(self, &request),
2198            "EnableVgwRoutePropagation" => rest::enable_vgw_route_propagation(self, &request),
2199            "EnableVpcClassicLink" => rest::enable_vpc_classic_link(self, &request),
2200            "EnableVpcClassicLinkDnsSupport" => {
2201                rest::enable_vpc_classic_link_dns_support(self, &request)
2202            }
2203            "ExportImage" => rest::export_image(self, &request),
2204            "GetAssociatedEnclaveCertificateIamRoles" => {
2205                rest::get_associated_enclave_certificate_iam_roles(self, &request)
2206            }
2207            "GetAssociatedIpv6PoolCidrs" => rest::get_associated_ipv6_pool_cidrs(self, &request),
2208            "GetAwsNetworkPerformanceData" => {
2209                rest::get_aws_network_performance_data(self, &request)
2210            }
2211            "GetCapacityManagerAttributes" => rest::get_capacity_manager_attributes(self, &request),
2212            "GetCapacityManagerMetricData" => {
2213                rest::get_capacity_manager_metric_data(self, &request)
2214            }
2215            "GetCapacityManagerMetricDimensions" => {
2216                rest::get_capacity_manager_metric_dimensions(self, &request)
2217            }
2218            "GetCapacityManagerMonitoredTagKeys" => {
2219                rest::get_capacity_manager_monitored_tag_keys(self, &request)
2220            }
2221            "GetDeclarativePoliciesReportSummary" => {
2222                rest::get_declarative_policies_report_summary(self, &request)
2223            }
2224            "GetDefaultCreditSpecification" => {
2225                rest::get_default_credit_specification(self, &request)
2226            }
2227            "GetHostReservationPurchasePreview" => {
2228                rest::get_host_reservation_purchase_preview(self, &request)
2229            }
2230            "GetImageAncestry" => rest::get_image_ancestry(self, &request),
2231            "GetInstanceTpmEkPub" => rest::get_instance_tpm_ek_pub(self, &request),
2232            "GetInstanceUefiData" => rest::get_instance_uefi_data(self, &request),
2233            "GetManagedPrefixListAssociations" => {
2234                rest::get_managed_prefix_list_associations(self, &request)
2235            }
2236            "GetManagedPrefixListEntries" => rest::get_managed_prefix_list_entries(self, &request),
2237            "GetManagedResourceVisibility" => rest::get_managed_resource_visibility(self, &request),
2238            "GetRouteServerAssociations" => rest::get_route_server_associations(self, &request),
2239            "GetRouteServerPropagations" => rest::get_route_server_propagations(self, &request),
2240            "GetRouteServerRoutingDatabase" => {
2241                rest::get_route_server_routing_database(self, &request)
2242            }
2243            "GetVpcResourcesBlockingEncryptionEnforcement" => {
2244                rest::get_vpc_resources_blocking_encryption_enforcement(self, &request)
2245            }
2246            "ImportImage" => rest::import_image(self, &request),
2247            "ImportInstance" => rest::import_instance(self, &request),
2248            "ImportSnapshot" => rest::import_snapshot(self, &request),
2249            "ImportVolume" => rest::import_volume(self, &request),
2250            "ModifyAvailabilityZoneGroup" => rest::modify_availability_zone_group(self, &request),
2251            "ModifyDefaultCreditSpecification" => {
2252                rest::modify_default_credit_specification(self, &request)
2253            }
2254            "ModifyFpgaImageAttribute" => rest::modify_fpga_image_attribute(self, &request),
2255            "ModifyIdFormat" => rest::modify_id_format(self, &request),
2256            "ModifyIdentityIdFormat" => rest::modify_identity_id_format(self, &request),
2257            "ModifyInstanceEventWindow" => rest::modify_instance_event_window(self, &request),
2258            "ModifyManagedPrefixList" => rest::modify_managed_prefix_list(self, &request),
2259            "ModifyManagedResourceVisibility" => {
2260                rest::modify_managed_resource_visibility(self, &request)
2261            }
2262            "ModifyPrivateDnsNameOptions" => rest::modify_private_dns_name_options(self, &request),
2263            "ModifyPublicIpDnsNameOptions" => {
2264                rest::modify_public_ip_dns_name_options(self, &request)
2265            }
2266            "ModifyRouteServer" => rest::modify_route_server(self, &request),
2267            "ModifyTrafficMirrorFilterNetworkServices" => {
2268                rest::modify_traffic_mirror_filter_network_services(self, &request)
2269            }
2270            "ModifyTrafficMirrorFilterRule" => {
2271                rest::modify_traffic_mirror_filter_rule(self, &request)
2272            }
2273            "ModifyTrafficMirrorSession" => rest::modify_traffic_mirror_session(self, &request),
2274            "ModifyVpcBlockPublicAccessExclusion" => {
2275                rest::modify_vpc_block_public_access_exclusion(self, &request)
2276            }
2277            "ModifyVpcBlockPublicAccessOptions" => {
2278                rest::modify_vpc_block_public_access_options(self, &request)
2279            }
2280            "ModifyVpcEncryptionControl" => rest::modify_vpc_encryption_control(self, &request),
2281            "ProvisionByoipCidr" => rest::provision_byoip_cidr(self, &request),
2282            "ProvisionPublicIpv4PoolCidr" => rest::provision_public_ipv4_pool_cidr(self, &request),
2283            "PurchaseHostReservation" => rest::purchase_host_reservation(self, &request),
2284            "PurchaseScheduledInstances" => rest::purchase_scheduled_instances(self, &request),
2285            "ReplaceIamInstanceProfileAssociation" => {
2286                rest::replace_iam_instance_profile_association(self, &request)
2287            }
2288            "ResetFpgaImageAttribute" => rest::reset_fpga_image_attribute(self, &request),
2289            "RestoreManagedPrefixListVersion" => {
2290                rest::restore_managed_prefix_list_version(self, &request)
2291            }
2292            "RunScheduledInstances" => rest::run_scheduled_instances(self, &request),
2293            "SendDiagnosticInterrupt" => rest::send_diagnostic_interrupt(self, &request),
2294            "StartDeclarativePoliciesReport" => {
2295                rest::start_declarative_policies_report(self, &request)
2296            }
2297            "UpdateCapacityManagerMonitoredTagKeys" => {
2298                rest::update_capacity_manager_monitored_tag_keys(self, &request)
2299            }
2300            "UpdateCapacityManagerOrganizationsAccess" => {
2301                rest::update_capacity_manager_organizations_access(self, &request)
2302            }
2303            "WithdrawByoipCidr" => rest::withdraw_byoip_cidr(self, &request),
2304            // Model ops absent from the vendored SDK client; tested via raw query.
2305            "CreateCapacityReservationCancellationQuote" => {
2306                rest::create_capacity_reservation_cancellation_quote(self, &request)
2307            }
2308            "DescribeCapacityReservationCancellationQuotes" => {
2309                rest::describe_capacity_reservation_cancellation_quotes(self, &request)
2310            }
2311            "DescribeIpamPoolAllocations" => rest::describe_ipam_pool_allocations(self, &request),
2312            "ModifyIpamPoolAllocation" => rest::modify_ipam_pool_allocation(self, &request),
2313            other => Err(AwsServiceError::aws_error(
2314                StatusCode::BAD_REQUEST,
2315                "InvalidAction",
2316                format!("The action {other} is not valid for this web service."),
2317            )),
2318        }
2319    }
2320}
2321
2322impl Ec2Service {
2323    /// Render an `ec2Query` response for `action` with `body` as the inner XML.
2324    pub(crate) fn respond(action: &str, request_id: &str, body: &str) -> AwsResponse {
2325        AwsResponse::xml(
2326            StatusCode::OK,
2327            fakecloud_aws::ec2query::ec2_response(action, request_id, body),
2328        )
2329    }
2330}