Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
4bcebc2
Smithy code gen for pagination
kai-ion Jan 13, 2026
5fd2410
Smithy code gen for pagination
kai-ion Jan 13, 2026
f6b745f
updated parser to use c2j mapping names
kai-ion Jan 14, 2026
2de73f5
updated writer to use c2j mapping names and deleted space in map.json
kai-ion Jan 14, 2026
23d324b
fix file location
kai-ion Jan 15, 2026
7037bce
added a compilation test
kai-ion Jan 15, 2026
7e00116
updated cppwriter to use smithy library
kai-ion Jan 15, 2026
9678fe0
changed parsers to be more generic
kai-ion Jan 15, 2026
92c93c7
added service name util
kai-ion Jan 15, 2026
bf937a9
filter out deprecated service
kai-ion Jan 15, 2026
f070b25
edgecases for backwards compatibility
kai-ion Jan 16, 2026
fbe61f6
edgecases for backwards compatibility
kai-ion Jan 16, 2026
dec8d9f
temporary fix for AccessAnalyzer which uses service-level pagination …
kai-ion Jan 16, 2026
ed27556
temporary fix for amp
kai-ion Jan 17, 2026
003c829
temporary fix for B2BI
kai-ion Jan 17, 2026
129efb7
harded for missing abbreviation trait
kai-ion Jan 17, 2026
cd521ac
added new detection logic for conflicting service name and add sdk su…
kai-ion Jan 17, 2026
244eff9
added new new detection logic for conflicting service name and add sd…
kai-ion Jan 17, 2026
fe74f8f
added new new new detection logic (next/Next token) for conflicting s…
kai-ion Jan 17, 2026
e78e70d
added a patch for Chatbotclient paginator. CamelCase
kai-ion Jan 20, 2026
18d9ee1
added a patch for cloudfront. uses a new suffix 2020_05_31
kai-ion Jan 20, 2026
cee39ae
added a patch to remove the unnessary version suffix strip
kai-ion Jan 20, 2026
043ddc7
added a patch to refactor duplication logic to shapeutil, and changed…
kai-ion Jan 20, 2026
38300cf
added a patch to add codestar and hard coded maps
kai-ion Jan 21, 2026
46406de
added a patch to add deadline
kai-ion Jan 21, 2026
2781576
added a patch to add transfer to abbreivation list and fix the servic…
kai-ion Jan 21, 2026
c9a3b3d
added a patch to ecr to fix GetLifecyclePolicyPreviewSdkResult.h. cha…
kai-ion Jan 21, 2026
1b0e434
added a patch for elasticache
kai-ion Jan 21, 2026
d6ca368
added a patch for lexv2-models.
kai-ion Jan 22, 2026
9abe05b
added a patch for medialive
kai-ion Jan 22, 2026
cde65e0
added a patch for s3 list parts where
kai-ion Jan 22, 2026
d107a1e
added integration tests for s3,ec2,dynamodb
kai-ion Jan 22, 2026
2062a65
added a patch to fix std string usage
kai-ion Jan 22, 2026
e70aa80
changed variable naming from c2j to smithy and moved paginationCodege…
kai-ion Jan 22, 2026
0da35f4
refactor code to shapeutil
kai-ion Jan 22, 2026
55fdc0c
WaitUntilActive method parameter tableName was shadowing the class me…
kai-ion Jan 22, 2026
a501c29
literally copy bucket integration test
kai-ion Jan 22, 2026
b9aa80c
updated codegen for c2j client to use CRTP base clients that have met…
kai-ion Jan 27, 2026
3dd6a5c
updated script to not traverse thru the entire dir
kai-ion Jan 28, 2026
7cedec3
updated script to not traverse thru the entire dir
kai-ion Jan 28, 2026
2bd0fdb
updated script to not traverse thru the entire dir. and to generate p…
kai-ion Jan 28, 2026
a92eb25
some services only exist in c2j and not smithy, added temporary solut…
kai-ion Jan 28, 2026
e93f24c
some services only exist in c2j and not smithy, added temporary solut…
kai-ion Jan 28, 2026
fa6e021
refactor the codegen so it looks like the workshop
kai-ion Jan 30, 2026
a114355
added smoke test pagination dependency
kai-ion Jan 31, 2026
d17544d
reverted to have everything in pagination codegen
kai-ion Jan 31, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
#include <aws/core/client/AWSClientAsyncCRTP.h>
#include <aws/core/client/ClientConfiguration.h>
#include <aws/dynamodb/DynamoDBErrorMarshaller.h>
#include <aws/dynamodb/DynamoDBPaginationBase.h>
#include <aws/dynamodb/DynamoDBServiceClientModel.h>
#include <aws/dynamodb/DynamoDB_EXPORTS.h>
#include <smithy/client/AwsSmithyClient.h>
Expand Down Expand Up @@ -40,7 +41,8 @@ class AWS_DYNAMODB_API DynamoDBClient
public smithy::client::AwsSmithyClientT<Aws::DynamoDB::SERVICE_NAME, Aws::DynamoDB::DynamoDBClientConfiguration,
smithy::AuthSchemeResolverBase<>, Aws::Crt::Variant<smithy::SigV4AuthScheme>,
DynamoDBEndpointProviderBase, smithy::client::JsonOutcomeSerializer,
smithy::client::JsonOutcome, Aws::Client::DynamoDBErrorMarshaller> {
smithy::client::JsonOutcome, Aws::Client::DynamoDBErrorMarshaller>,
public DynamoDBPaginationBase<DynamoDBClient> {
public:
static const char* GetServiceName();
static const char* GetAllocationTag();
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/

#pragma once
#include <aws/core/utils/pagination/Paginator.h>
#include <aws/dynamodb/DynamoDBClient.h>
#include <aws/dynamodb/model/ListContributorInsightsPaginationTraits.h>
#include <aws/dynamodb/model/ListExportsPaginationTraits.h>
#include <aws/dynamodb/model/ListImportsPaginationTraits.h>
#include <aws/dynamodb/model/ListTablesPaginationTraits.h>
#include <aws/dynamodb/model/QueryPaginationTraits.h>
#include <aws/dynamodb/model/ScanPaginationTraits.h>

namespace Aws {
namespace DynamoDB {

using ListContributorInsightsPaginator = Aws::Utils::Pagination::PagePaginator<DynamoDBClient, Model::ListContributorInsightsRequest,
Pagination::ListContributorInsightsPaginationTraits>;
using ListExportsPaginator =
Aws::Utils::Pagination::PagePaginator<DynamoDBClient, Model::ListExportsRequest, Pagination::ListExportsPaginationTraits>;
using ListImportsPaginator =
Aws::Utils::Pagination::PagePaginator<DynamoDBClient, Model::ListImportsRequest, Pagination::ListImportsPaginationTraits>;
using ListTablesPaginator =
Aws::Utils::Pagination::PagePaginator<DynamoDBClient, Model::ListTablesRequest, Pagination::ListTablesPaginationTraits>;
using QueryPaginator = Aws::Utils::Pagination::PagePaginator<DynamoDBClient, Model::QueryRequest, Pagination::QueryPaginationTraits>;
using ScanPaginator = Aws::Utils::Pagination::PagePaginator<DynamoDBClient, Model::ScanRequest, Pagination::ScanPaginationTraits>;

} // namespace DynamoDB
} // namespace Aws
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/

#pragma once

#include <aws/core/utils/pagination/Paginator.h>
#include <aws/dynamodb/model/ListContributorInsightsPaginationTraits.h>
#include <aws/dynamodb/model/ListExportsPaginationTraits.h>
#include <aws/dynamodb/model/ListImportsPaginationTraits.h>
#include <aws/dynamodb/model/ListTablesPaginationTraits.h>
#include <aws/dynamodb/model/QueryPaginationTraits.h>
#include <aws/dynamodb/model/ScanPaginationTraits.h>

#include <memory>

namespace Aws {
namespace DynamoDB {

class DynamoDBClient;

template <typename DerivedClient>
class DynamoDBPaginationBase {
public:
/**
* Create a paginator for ListContributorInsights operation
*/
Aws::Utils::Pagination::PagePaginator<DerivedClient, Model::ListContributorInsightsRequest,
Pagination::ListContributorInsightsPaginationTraits>
ListContributorInsightsPaginator(const Model::ListContributorInsightsRequest& request) {
return Aws::Utils::Pagination::PagePaginator<DerivedClient, Model::ListContributorInsightsRequest,
Pagination::ListContributorInsightsPaginationTraits>{
std::shared_ptr<DerivedClient>(static_cast<DerivedClient*>(this), [](DerivedClient*) {}), request};
}

/**
* Create a paginator for ListExports operation
*/
Aws::Utils::Pagination::PagePaginator<DerivedClient, Model::ListExportsRequest, Pagination::ListExportsPaginationTraits>
ListExportsPaginator(const Model::ListExportsRequest& request) {
return Aws::Utils::Pagination::PagePaginator<DerivedClient, Model::ListExportsRequest, Pagination::ListExportsPaginationTraits>{
std::shared_ptr<DerivedClient>(static_cast<DerivedClient*>(this), [](DerivedClient*) {}), request};
}

/**
* Create a paginator for ListImports operation
*/
Aws::Utils::Pagination::PagePaginator<DerivedClient, Model::ListImportsRequest, Pagination::ListImportsPaginationTraits>
ListImportsPaginator(const Model::ListImportsRequest& request) {
return Aws::Utils::Pagination::PagePaginator<DerivedClient, Model::ListImportsRequest, Pagination::ListImportsPaginationTraits>{
std::shared_ptr<DerivedClient>(static_cast<DerivedClient*>(this), [](DerivedClient*) {}), request};
}

/**
* Create a paginator for ListTables operation
*/
Aws::Utils::Pagination::PagePaginator<DerivedClient, Model::ListTablesRequest, Pagination::ListTablesPaginationTraits>
ListTablesPaginator(const Model::ListTablesRequest& request) {
return Aws::Utils::Pagination::PagePaginator<DerivedClient, Model::ListTablesRequest, Pagination::ListTablesPaginationTraits>{
std::shared_ptr<DerivedClient>(static_cast<DerivedClient*>(this), [](DerivedClient*) {}), request};
}

/**
* Create a paginator for Query operation
*/
Aws::Utils::Pagination::PagePaginator<DerivedClient, Model::QueryRequest, Pagination::QueryPaginationTraits> QueryPaginator(
const Model::QueryRequest& request) {
return Aws::Utils::Pagination::PagePaginator<DerivedClient, Model::QueryRequest, Pagination::QueryPaginationTraits>{
std::shared_ptr<DerivedClient>(static_cast<DerivedClient*>(this), [](DerivedClient*) {}), request};
}

/**
* Create a paginator for Scan operation
*/
Aws::Utils::Pagination::PagePaginator<DerivedClient, Model::ScanRequest, Pagination::ScanPaginationTraits> ScanPaginator(
const Model::ScanRequest& request) {
return Aws::Utils::Pagination::PagePaginator<DerivedClient, Model::ScanRequest, Pagination::ScanPaginationTraits>{
std::shared_ptr<DerivedClient>(static_cast<DerivedClient*>(this), [](DerivedClient*) {}), request};
}
};
} // namespace DynamoDB
} // namespace Aws
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/

#pragma once
#include <aws/dynamodb/DynamoDBServiceClientModel.h>
#include <aws/dynamodb/DynamoDB_EXPORTS.h>
#include <aws/dynamodb/model/ScanRequest.h>
#include <aws/dynamodb/model/ScanResult.h>

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 <typename Client = ClientType>
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
5 changes: 4 additions & 1 deletion generated/src/aws-cpp-sdk-ec2/include/aws/ec2/EC2Client.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
#include <aws/core/client/AWSClientAsyncCRTP.h>
#include <aws/core/client/ClientConfiguration.h>
#include <aws/core/utils/xml/XmlSerializer.h>
#include <aws/ec2/EC2PaginationBase.h>
#include <aws/ec2/EC2ServiceClientModel.h>
#include <aws/ec2/EC2_EXPORTS.h>

Expand All @@ -21,7 +22,9 @@ namespace EC2 {
* href="https://docs.aws.amazon.com/ec2/latest/devguide">Amazon EC2 Developer
* Guide</a>.</p>
*/
class AWS_EC2_API EC2Client : public Aws::Client::AWSXMLClient, public Aws::Client::ClientWithAsyncTemplateMethods<EC2Client> {
class AWS_EC2_API EC2Client : public Aws::Client::AWSXMLClient,
public Aws::Client::ClientWithAsyncTemplateMethods<EC2Client>,
public EC2PaginationBase<EC2Client> {
public:
typedef Aws::Client::AWSXMLClient BASECLASS;
static const char* GetServiceName();
Expand Down
Loading
Loading