From 209e3e013935e953123f9026ad9cbdd9ceccb566 Mon Sep 17 00:00:00 2001
From: kai lin
Date: Tue, 13 Jan 2026 14:44:20 -0500
Subject: [PATCH 1/5] Added pagination codegen to new Smithy codegen project
with CRTP base clients, service-specific patches, and integration tests for
S3, EC2, and DynamoDB
---
.../include/aws/dynamodb/DynamoDBClient.h | 4 +-
.../aws/dynamodb/DynamoDBClientPagination.h | 31 +
.../aws/dynamodb/DynamoDBPaginationBase.h | 83 +
.../aws/dynamodb/model/ScanPaginationTraits.h | 35 +
.../include/aws/ec2/EC2Client.h | 5 +-
.../include/aws/ec2/EC2ClientPagination.h | 592 +++++
.../include/aws/ec2/EC2PaginationBase.h | 1944 +++++++++++++++++
...DescribeSpotPriceHistoryPaginationTraits.h | 35 +
.../aws-cpp-sdk-s3/include/aws/s3/S3Client.h | 5 +-
.../include/aws/s3/S3ClientPagination.h | 26 +
.../include/aws/s3/S3PaginationBase.h | 62 +
.../s3/model/ListBucketsPaginationTraits.h | 37 +
.../ListDirectoryBucketsPaginationTraits.h | 37 +
.../s3/model/ListObjectsV2PaginationTraits.h | 37 +
.../aws/s3/model/ListPartsPaginationTraits.h | 37 +
.../DynamoDBPaginationCompilationTests.cpp | 28 +
.../EC2PaginationCompilationTests.cpp | 185 ++
.../S3PaginationCompilationTests.cpp | 26 +
.../ScanPaginationIntegrationTest.cpp | 214 ++
.../EC2PaginationIntegrationTest.cpp | 156 ++
...ListObjectsV2PaginationIntegrationTest.cpp | 264 +++
.../cpp/json/JsonServiceClientHeader.vm | 3 +-
.../velocity/cpp/s3/S3ClientHeader.vm | 3 +-
.../velocity/cpp/smithy/SmithyClientHeader.vm | 4 +-
.../cpp/xml/XmlServiceClientHeader.vm | 3 +-
.../cpp-pagination-codegen/build.gradle.kts | 18 +
.../generators/ClientCodegenSettings.java | 20 +
.../generators/CompilationTestParser.java | 45 +
.../generators/CppImportContainer.java | 36 +
.../generators/CppWriter.java | 45 +
.../generators/CppWriterDelegator.java | 37 +
.../generators/FeatureParser.java | 67 +
.../generators/OperationData.java | 32 +
.../generators/ServiceNameUtil.java | 141 ++
.../generators/ShapeUtil.java | 279 +++
.../templates/PaginationBaseGenerator.java | 102 +
.../PaginationClientHeaderGenerator.java | 76 +
.../templates/PaginationCodegenPlugin.java | 140 ++
.../PaginationCompilationTestGenerator.java | 107 +
.../templates/PaginationTraitsGenerator.java | 207 ++
...ware.amazon.smithy.build.SmithyBuildPlugin | 1 +
.../codegen/cpp-pagination/build.gradle.kts | 104 +
.../codegen/cpp-pagination/smithy-build.json | 36 +
.../smithy/codegen/settings.gradle.kts | 2 +
.../codegen/smithy2c2j_service_map.json | 2 +-
tools/scripts/codegen/legacy_c2j_cpp_gen.py | 7 -
tools/scripts/codegen/pagination_gen.py | 126 ++
tools/scripts/codegen/smoke_tests_gen.py | 16 +-
tools/scripts/run_code_generation.py | 16 +
49 files changed, 5499 insertions(+), 19 deletions(-)
create mode 100644 generated/src/aws-cpp-sdk-dynamodb/include/aws/dynamodb/DynamoDBClientPagination.h
create mode 100644 generated/src/aws-cpp-sdk-dynamodb/include/aws/dynamodb/DynamoDBPaginationBase.h
create mode 100644 generated/src/aws-cpp-sdk-dynamodb/include/aws/dynamodb/model/ScanPaginationTraits.h
create mode 100644 generated/src/aws-cpp-sdk-ec2/include/aws/ec2/EC2ClientPagination.h
create mode 100644 generated/src/aws-cpp-sdk-ec2/include/aws/ec2/EC2PaginationBase.h
create mode 100644 generated/src/aws-cpp-sdk-ec2/include/aws/ec2/model/DescribeSpotPriceHistoryPaginationTraits.h
create mode 100644 generated/src/aws-cpp-sdk-s3/include/aws/s3/S3ClientPagination.h
create mode 100644 generated/src/aws-cpp-sdk-s3/include/aws/s3/S3PaginationBase.h
create mode 100644 generated/src/aws-cpp-sdk-s3/include/aws/s3/model/ListBucketsPaginationTraits.h
create mode 100644 generated/src/aws-cpp-sdk-s3/include/aws/s3/model/ListDirectoryBucketsPaginationTraits.h
create mode 100644 generated/src/aws-cpp-sdk-s3/include/aws/s3/model/ListObjectsV2PaginationTraits.h
create mode 100644 generated/src/aws-cpp-sdk-s3/include/aws/s3/model/ListPartsPaginationTraits.h
create mode 100644 generated/tests/dynamodb-gen-tests/DynamoDBPaginationCompilationTests.cpp
create mode 100644 generated/tests/ec2-gen-tests/EC2PaginationCompilationTests.cpp
create mode 100644 generated/tests/s3-gen-tests/S3PaginationCompilationTests.cpp
create mode 100644 tests/aws-cpp-sdk-dynamodb-integration-tests/ScanPaginationIntegrationTest.cpp
create mode 100644 tests/aws-cpp-sdk-ec2-integration-tests/EC2PaginationIntegrationTest.cpp
create mode 100644 tests/aws-cpp-sdk-s3-integration-tests/ListObjectsV2PaginationIntegrationTest.cpp
create mode 100644 tools/code-generation/smithy/codegen/cpp-pagination-codegen/build.gradle.kts
create mode 100644 tools/code-generation/smithy/codegen/cpp-pagination-codegen/src/main/java/com/amazonaws/util/awsclientsmithygenerator/generators/ClientCodegenSettings.java
create mode 100644 tools/code-generation/smithy/codegen/cpp-pagination-codegen/src/main/java/com/amazonaws/util/awsclientsmithygenerator/generators/CompilationTestParser.java
create mode 100644 tools/code-generation/smithy/codegen/cpp-pagination-codegen/src/main/java/com/amazonaws/util/awsclientsmithygenerator/generators/CppImportContainer.java
create mode 100644 tools/code-generation/smithy/codegen/cpp-pagination-codegen/src/main/java/com/amazonaws/util/awsclientsmithygenerator/generators/CppWriter.java
create mode 100644 tools/code-generation/smithy/codegen/cpp-pagination-codegen/src/main/java/com/amazonaws/util/awsclientsmithygenerator/generators/CppWriterDelegator.java
create mode 100644 tools/code-generation/smithy/codegen/cpp-pagination-codegen/src/main/java/com/amazonaws/util/awsclientsmithygenerator/generators/FeatureParser.java
create mode 100644 tools/code-generation/smithy/codegen/cpp-pagination-codegen/src/main/java/com/amazonaws/util/awsclientsmithygenerator/generators/OperationData.java
create mode 100644 tools/code-generation/smithy/codegen/cpp-pagination-codegen/src/main/java/com/amazonaws/util/awsclientsmithygenerator/generators/ServiceNameUtil.java
create mode 100644 tools/code-generation/smithy/codegen/cpp-pagination-codegen/src/main/java/com/amazonaws/util/awsclientsmithygenerator/generators/ShapeUtil.java
create mode 100644 tools/code-generation/smithy/codegen/cpp-pagination-codegen/src/main/java/com/amazonaws/util/awsclientsmithygenerator/generators/templates/PaginationBaseGenerator.java
create mode 100644 tools/code-generation/smithy/codegen/cpp-pagination-codegen/src/main/java/com/amazonaws/util/awsclientsmithygenerator/generators/templates/PaginationClientHeaderGenerator.java
create mode 100644 tools/code-generation/smithy/codegen/cpp-pagination-codegen/src/main/java/com/amazonaws/util/awsclientsmithygenerator/generators/templates/PaginationCodegenPlugin.java
create mode 100644 tools/code-generation/smithy/codegen/cpp-pagination-codegen/src/main/java/com/amazonaws/util/awsclientsmithygenerator/generators/templates/PaginationCompilationTestGenerator.java
create mode 100644 tools/code-generation/smithy/codegen/cpp-pagination-codegen/src/main/java/com/amazonaws/util/awsclientsmithygenerator/generators/templates/PaginationTraitsGenerator.java
create mode 100644 tools/code-generation/smithy/codegen/cpp-pagination-codegen/src/main/resources/META-INF/services/software.amazon.smithy.build.SmithyBuildPlugin
create mode 100644 tools/code-generation/smithy/codegen/cpp-pagination/build.gradle.kts
create mode 100644 tools/code-generation/smithy/codegen/cpp-pagination/smithy-build.json
create mode 100644 tools/scripts/codegen/pagination_gen.py
diff --git a/generated/src/aws-cpp-sdk-dynamodb/include/aws/dynamodb/DynamoDBClient.h b/generated/src/aws-cpp-sdk-dynamodb/include/aws/dynamodb/DynamoDBClient.h
index 873154dd938b..a4cfb576b72e 100644
--- a/generated/src/aws-cpp-sdk-dynamodb/include/aws/dynamodb/DynamoDBClient.h
+++ b/generated/src/aws-cpp-sdk-dynamodb/include/aws/dynamodb/DynamoDBClient.h
@@ -7,6 +7,7 @@
#include
#include
#include
+#include
#include
#include
#include
@@ -40,7 +41,8 @@ class AWS_DYNAMODB_API DynamoDBClient
public smithy::client::AwsSmithyClientT, Aws::Crt::Variant,
DynamoDBEndpointProviderBase, smithy::client::JsonOutcomeSerializer,
- smithy::client::JsonOutcome, Aws::Client::DynamoDBErrorMarshaller> {
+ smithy::client::JsonOutcome, Aws::Client::DynamoDBErrorMarshaller>,
+ public DynamoDBPaginationBase {
public:
static const char* GetServiceName();
static const char* GetAllocationTag();
diff --git a/generated/src/aws-cpp-sdk-dynamodb/include/aws/dynamodb/DynamoDBClientPagination.h b/generated/src/aws-cpp-sdk-dynamodb/include/aws/dynamodb/DynamoDBClientPagination.h
new file mode 100644
index 000000000000..41e75132dbc4
--- /dev/null
+++ b/generated/src/aws-cpp-sdk-dynamodb/include/aws/dynamodb/DynamoDBClientPagination.h
@@ -0,0 +1,31 @@
+/**
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ * SPDX-License-Identifier: Apache-2.0.
+ */
+
+#pragma once
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+namespace Aws {
+namespace DynamoDB {
+
+using ListContributorInsightsPaginator = Aws::Utils::Pagination::PagePaginator;
+using ListExportsPaginator =
+ Aws::Utils::Pagination::PagePaginator;
+using ListImportsPaginator =
+ Aws::Utils::Pagination::PagePaginator;
+using ListTablesPaginator =
+ Aws::Utils::Pagination::PagePaginator;
+using QueryPaginator = Aws::Utils::Pagination::PagePaginator;
+using ScanPaginator = Aws::Utils::Pagination::PagePaginator;
+
+} // namespace DynamoDB
+} // namespace Aws
diff --git a/generated/src/aws-cpp-sdk-dynamodb/include/aws/dynamodb/DynamoDBPaginationBase.h b/generated/src/aws-cpp-sdk-dynamodb/include/aws/dynamodb/DynamoDBPaginationBase.h
new file mode 100644
index 000000000000..739b15e86c26
--- /dev/null
+++ b/generated/src/aws-cpp-sdk-dynamodb/include/aws/dynamodb/DynamoDBPaginationBase.h
@@ -0,0 +1,83 @@
+/**
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ * SPDX-License-Identifier: Apache-2.0.
+ */
+
+#pragma once
+
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+#include
+
+namespace Aws {
+namespace DynamoDB {
+
+class DynamoDBClient;
+
+template
+class DynamoDBPaginationBase {
+ public:
+ /**
+ * Create a paginator for ListContributorInsights operation
+ */
+ Aws::Utils::Pagination::PagePaginator
+ ListContributorInsightsPaginator(const Model::ListContributorInsightsRequest& request) {
+ return Aws::Utils::Pagination::PagePaginator{
+ std::shared_ptr(static_cast(this), [](DerivedClient*) {}), request};
+ }
+
+ /**
+ * Create a paginator for ListExports operation
+ */
+ Aws::Utils::Pagination::PagePaginator
+ ListExportsPaginator(const Model::ListExportsRequest& request) {
+ return Aws::Utils::Pagination::PagePaginator{
+ std::shared_ptr(static_cast(this), [](DerivedClient*) {}), request};
+ }
+
+ /**
+ * Create a paginator for ListImports operation
+ */
+ Aws::Utils::Pagination::PagePaginator
+ ListImportsPaginator(const Model::ListImportsRequest& request) {
+ return Aws::Utils::Pagination::PagePaginator{
+ std::shared_ptr(static_cast(this), [](DerivedClient*) {}), request};
+ }
+
+ /**
+ * Create a paginator for ListTables operation
+ */
+ Aws::Utils::Pagination::PagePaginator
+ ListTablesPaginator(const Model::ListTablesRequest& request) {
+ return Aws::Utils::Pagination::PagePaginator{
+ std::shared_ptr(static_cast(this), [](DerivedClient*) {}), request};
+ }
+
+ /**
+ * Create a paginator for Query operation
+ */
+ Aws::Utils::Pagination::PagePaginator QueryPaginator(
+ const Model::QueryRequest& request) {
+ return Aws::Utils::Pagination::PagePaginator{
+ std::shared_ptr(static_cast(this), [](DerivedClient*) {}), request};
+ }
+
+ /**
+ * Create a paginator for Scan operation
+ */
+ Aws::Utils::Pagination::PagePaginator ScanPaginator(
+ const Model::ScanRequest& request) {
+ return Aws::Utils::Pagination::PagePaginator{
+ std::shared_ptr(static_cast(this), [](DerivedClient*) {}), request};
+ }
+};
+} // namespace DynamoDB
+} // namespace Aws
diff --git a/generated/src/aws-cpp-sdk-dynamodb/include/aws/dynamodb/model/ScanPaginationTraits.h b/generated/src/aws-cpp-sdk-dynamodb/include/aws/dynamodb/model/ScanPaginationTraits.h
new file mode 100644
index 000000000000..988cf65a5828
--- /dev/null
+++ b/generated/src/aws-cpp-sdk-dynamodb/include/aws/dynamodb/model/ScanPaginationTraits.h
@@ -0,0 +1,35 @@
+/**
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ * SPDX-License-Identifier: Apache-2.0.
+ */
+
+#pragma once
+#include
+#include
+#include
+#include
+
+namespace Aws {
+namespace DynamoDB {
+class DynamoDBClient;
+namespace Pagination {
+
+struct ScanPaginationTraits {
+ using RequestType = Model::ScanRequest;
+ using ResultType = Model::ScanResult;
+ using OutcomeType = Model::ScanOutcome;
+ using ClientType = DynamoDBClient;
+
+ template
+ static OutcomeType Invoke(Client& client, const RequestType& request) {
+ return client.Scan(request);
+ }
+
+ static bool HasMoreResults(const ResultType& result) { return !result.GetLastEvaluatedKey().empty(); }
+
+ static void SetNextRequest(const ResultType& result, RequestType& request) { request.SetExclusiveStartKey(result.GetLastEvaluatedKey()); }
+};
+
+} // namespace Pagination
+} // namespace DynamoDB
+} // namespace Aws
diff --git a/generated/src/aws-cpp-sdk-ec2/include/aws/ec2/EC2Client.h b/generated/src/aws-cpp-sdk-ec2/include/aws/ec2/EC2Client.h
index 448f1a952f35..49cf8ca71505 100644
--- a/generated/src/aws-cpp-sdk-ec2/include/aws/ec2/EC2Client.h
+++ b/generated/src/aws-cpp-sdk-ec2/include/aws/ec2/EC2Client.h
@@ -9,6 +9,7 @@
#include
#include
#include
+#include
#include
#include
@@ -21,7 +22,9 @@ namespace EC2 {
* href="https://docs.aws.amazon.com/ec2/latest/devguide">Amazon EC2 Developer
* Guide.
*/
-class AWS_EC2_API EC2Client : public Aws::Client::AWSXMLClient, public Aws::Client::ClientWithAsyncTemplateMethods {
+class AWS_EC2_API EC2Client : public Aws::Client::AWSXMLClient,
+ public Aws::Client::ClientWithAsyncTemplateMethods,
+ public EC2PaginationBase {
public:
typedef Aws::Client::AWSXMLClient BASECLASS;
static const char* GetServiceName();
diff --git a/generated/src/aws-cpp-sdk-ec2/include/aws/ec2/EC2ClientPagination.h b/generated/src/aws-cpp-sdk-ec2/include/aws/ec2/EC2ClientPagination.h
new file mode 100644
index 000000000000..a108d6a661d3
--- /dev/null
+++ b/generated/src/aws-cpp-sdk-ec2/include/aws/ec2/EC2ClientPagination.h
@@ -0,0 +1,592 @@
+/**
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ * SPDX-License-Identifier: Apache-2.0.
+ */
+
+#pragma once
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+namespace Aws {
+namespace EC2 {
+
+using DescribeAddressesAttributePaginator = Aws::Utils::Pagination::PagePaginator;
+using DescribeAddressTransfersPaginator = Aws::Utils::Pagination::PagePaginator;
+using DescribeAwsNetworkPerformanceMetricSubscriptionsPaginator =
+ Aws::Utils::Pagination::PagePaginator;
+using DescribeByoipCidrsPaginator =
+ Aws::Utils::Pagination::PagePaginator;
+using DescribeCapacityBlockExtensionHistoryPaginator =
+ Aws::Utils::Pagination::PagePaginator;
+using DescribeCapacityBlockExtensionOfferingsPaginator =
+ Aws::Utils::Pagination::PagePaginator;
+using DescribeCapacityBlockOfferingsPaginator =
+ Aws::Utils::Pagination::PagePaginator;
+using DescribeCapacityBlocksPaginator = Aws::Utils::Pagination::PagePaginator;
+using DescribeCapacityBlockStatusPaginator = Aws::Utils::Pagination::PagePaginator;
+using DescribeCapacityManagerDataExportsPaginator =
+ Aws::Utils::Pagination::PagePaginator;
+using DescribeCapacityReservationBillingRequestsPaginator =
+ Aws::Utils::Pagination::PagePaginator;
+using DescribeCapacityReservationFleetsPaginator =
+ Aws::Utils::Pagination::PagePaginator;
+using DescribeCapacityReservationsPaginator =
+ Aws::Utils::Pagination::PagePaginator;
+using DescribeCarrierGatewaysPaginator = Aws::Utils::Pagination::PagePaginator;
+using DescribeClassicLinkInstancesPaginator =
+ Aws::Utils::Pagination::PagePaginator;
+using DescribeClientVpnAuthorizationRulesPaginator =
+ Aws::Utils::Pagination::PagePaginator;
+using DescribeClientVpnConnectionsPaginator =
+ Aws::Utils::Pagination::PagePaginator;
+using DescribeClientVpnEndpointsPaginator = Aws::Utils::Pagination::PagePaginator;
+using DescribeClientVpnRoutesPaginator = Aws::Utils::Pagination::PagePaginator;
+using DescribeClientVpnTargetNetworksPaginator =
+ Aws::Utils::Pagination::PagePaginator;
+using DescribeCoipPoolsPaginator =
+ Aws::Utils::Pagination::PagePaginator;
+using DescribeDhcpOptionsPaginator =
+ Aws::Utils::Pagination::PagePaginator;
+using DescribeEgressOnlyInternetGatewaysPaginator =
+ Aws::Utils::Pagination::PagePaginator;
+using DescribeExportImageTasksPaginator = Aws::Utils::Pagination::PagePaginator;
+using DescribeFastLaunchImagesPaginator = Aws::Utils::Pagination::PagePaginator;
+using DescribeFastSnapshotRestoresPaginator =
+ Aws::Utils::Pagination::PagePaginator;
+using DescribeFleetsPaginator =
+ Aws::Utils::Pagination::PagePaginator;
+using DescribeFlowLogsPaginator =
+ Aws::Utils::Pagination::PagePaginator;
+using DescribeFpgaImagesPaginator =
+ Aws::Utils::Pagination::PagePaginator;
+using DescribeHostReservationOfferingsPaginator =
+ Aws::Utils::Pagination::PagePaginator;
+using DescribeHostReservationsPaginator = Aws::Utils::Pagination::PagePaginator;
+using DescribeHostsPaginator =
+ Aws::Utils::Pagination::PagePaginator;
+using DescribeIamInstanceProfileAssociationsPaginator =
+ Aws::Utils::Pagination::PagePaginator;
+using DescribeImageReferencesPaginator = Aws::Utils::Pagination::PagePaginator;
+using DescribeImagesPaginator =
+ Aws::Utils::Pagination::PagePaginator;
+using DescribeImageUsageReportEntriesPaginator =
+ Aws::Utils::Pagination::PagePaginator;
+using DescribeImageUsageReportsPaginator = Aws::Utils::Pagination::PagePaginator;
+using DescribeImportImageTasksPaginator = Aws::Utils::Pagination::PagePaginator;
+using DescribeImportSnapshotTasksPaginator = Aws::Utils::Pagination::PagePaginator;
+using DescribeInstanceConnectEndpointsPaginator =
+ Aws::Utils::Pagination::PagePaginator;
+using DescribeInstanceCreditSpecificationsPaginator =
+ Aws::Utils::Pagination::PagePaginator;
+using DescribeInstanceEventWindowsPaginator =
+ Aws::Utils::Pagination::PagePaginator;
+using DescribeInstanceImageMetadataPaginator =
+ Aws::Utils::Pagination::PagePaginator;
+using DescribeInstancesPaginator =
+ Aws::Utils::Pagination::PagePaginator;
+using DescribeInstanceStatusPaginator = Aws::Utils::Pagination::PagePaginator;
+using DescribeInstanceTopologyPaginator = Aws::Utils::Pagination::PagePaginator;
+using DescribeInstanceTypeOfferingsPaginator =
+ Aws::Utils::Pagination::PagePaginator;
+using DescribeInstanceTypesPaginator = Aws::Utils::Pagination::PagePaginator;
+using DescribeInternetGatewaysPaginator = Aws::Utils::Pagination::PagePaginator;
+using DescribeIpamPoolsPaginator =
+ Aws::Utils::Pagination::PagePaginator;
+using DescribeIpamPrefixListResolversPaginator =
+ Aws::Utils::Pagination::PagePaginator;
+using DescribeIpamPrefixListResolverTargetsPaginator =
+ Aws::Utils::Pagination::PagePaginator;
+using DescribeIpamResourceDiscoveriesPaginator =
+ Aws::Utils::Pagination::PagePaginator;
+using DescribeIpamResourceDiscoveryAssociationsPaginator =
+ Aws::Utils::Pagination::PagePaginator;
+using DescribeIpamsPaginator =
+ Aws::Utils::Pagination::PagePaginator;
+using DescribeIpamScopesPaginator =
+ Aws::Utils::Pagination::PagePaginator;
+using DescribeIpv6PoolsPaginator =
+ Aws::Utils::Pagination::PagePaginator;
+using DescribeLaunchTemplatesPaginator = Aws::Utils::Pagination::PagePaginator;
+using DescribeLaunchTemplateVersionsPaginator =
+ Aws::Utils::Pagination::PagePaginator;
+using DescribeLocalGatewayRouteTablesPaginator =
+ Aws::Utils::Pagination::PagePaginator;
+using DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsPaginator =
+ Aws::Utils::Pagination::PagePaginator;
+using DescribeLocalGatewayRouteTableVpcAssociationsPaginator =
+ Aws::Utils::Pagination::PagePaginator;
+using DescribeLocalGatewaysPaginator = Aws::Utils::Pagination::PagePaginator;
+using DescribeLocalGatewayVirtualInterfaceGroupsPaginator =
+ Aws::Utils::Pagination::PagePaginator;
+using DescribeLocalGatewayVirtualInterfacesPaginator =
+ Aws::Utils::Pagination::PagePaginator;
+using DescribeMacHostsPaginator =
+ Aws::Utils::Pagination::PagePaginator;
+using DescribeMacModificationTasksPaginator =
+ Aws::Utils::Pagination::PagePaginator;
+using DescribeManagedPrefixListsPaginator = Aws::Utils::Pagination::PagePaginator;
+using DescribeMovingAddressesPaginator = Aws::Utils::Pagination::PagePaginator;
+using DescribeNatGatewaysPaginator =
+ Aws::Utils::Pagination::PagePaginator;
+using DescribeNetworkAclsPaginator =
+ Aws::Utils::Pagination::PagePaginator;
+using DescribeNetworkInsightsAccessScopeAnalysesPaginator =
+ Aws::Utils::Pagination::PagePaginator;
+using DescribeNetworkInsightsAccessScopesPaginator =
+ Aws::Utils::Pagination::PagePaginator;
+using DescribeNetworkInsightsAnalysesPaginator =
+ Aws::Utils::Pagination::PagePaginator;
+using DescribeNetworkInsightsPathsPaginator =
+ Aws::Utils::Pagination::PagePaginator;
+using DescribeNetworkInterfacePermissionsPaginator =
+ Aws::Utils::Pagination::PagePaginator;
+using DescribeNetworkInterfacesPaginator = Aws::Utils::Pagination::PagePaginator;
+using DescribePrefixListsPaginator =
+ Aws::Utils::Pagination::PagePaginator;
+using DescribePrincipalIdFormatPaginator = Aws::Utils::Pagination::PagePaginator;
+using DescribePublicIpv4PoolsPaginator = Aws::Utils::Pagination::PagePaginator;
+using DescribeReplaceRootVolumeTasksPaginator =
+ Aws::Utils::Pagination::PagePaginator;
+using DescribeReservedInstancesModificationsPaginator =
+ Aws::Utils::Pagination::PagePaginator;
+using DescribeReservedInstancesOfferingsPaginator =
+ Aws::Utils::Pagination::PagePaginator;
+using DescribeRouteServerEndpointsPaginator =
+ Aws::Utils::Pagination::PagePaginator;
+using DescribeRouteServerPeersPaginator = Aws::Utils::Pagination::PagePaginator;
+using DescribeRouteServersPaginator =
+ Aws::Utils::Pagination::PagePaginator