Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
bd04a63
Smithy code gen for pagination
kai-ion Jan 13, 2026
153df50
Smithy code gen for pagination
kai-ion Jan 13, 2026
1461605
updated parser to use c2j mapping names
kai-ion Jan 14, 2026
262eae8
updated writer to use c2j mapping names and deleted space in map.json
kai-ion Jan 14, 2026
b647665
fix file location
kai-ion Jan 15, 2026
03c06ef
added a compilation test
kai-ion Jan 15, 2026
d58423e
updated cppwriter to use smithy library
kai-ion Jan 15, 2026
7c55bf5
changed parsers to be more generic
kai-ion Jan 15, 2026
6b29534
added service name util
kai-ion Jan 15, 2026
6084c35
filter out deprecated service
kai-ion Jan 15, 2026
6ef01e7
edgecases for backwards compatibility
kai-ion Jan 16, 2026
1eb974f
edgecases for backwards compatibility
kai-ion Jan 16, 2026
aabd2e6
temporary fix for AccessAnalyzer which uses service-level pagination …
kai-ion Jan 16, 2026
0ebc50f
temporary fix for amp
kai-ion Jan 17, 2026
14d1c8b
temporary fix for B2BI
kai-ion Jan 17, 2026
619c29a
harded for missing abbreviation trait
kai-ion Jan 17, 2026
e742bc6
added new detection logic for conflicting service name and add sdk su…
kai-ion Jan 17, 2026
08cd208
added new new detection logic for conflicting service name and add sd…
kai-ion Jan 17, 2026
927dee5
added new new new detection logic (next/Next token) for conflicting s…
kai-ion Jan 17, 2026
9884429
added a patch for Chatbotclient paginator. CamelCase
kai-ion Jan 20, 2026
26a722d
added a patch for cloudfront. uses a new suffix 2020_05_31
kai-ion Jan 20, 2026
5f6fc4a
added a patch to remove the unnessary version suffix strip
kai-ion Jan 20, 2026
56e7beb
added a patch to refactor duplication logic to shapeutil, and changed…
kai-ion Jan 20, 2026
72b6e3d
added a patch to add codestar and hard coded maps
kai-ion Jan 21, 2026
c19e79c
added a patch to add deadline
kai-ion Jan 21, 2026
9c79e49
added a patch to add transfer to abbreivation list and fix the servic…
kai-ion Jan 21, 2026
dbf14aa
added a patch to ecr to fix GetLifecyclePolicyPreviewSdkResult.h. cha…
kai-ion Jan 21, 2026
06c822c
added a patch for elasticache
kai-ion Jan 21, 2026
b5d891f
added a patch for lexv2-models.
kai-ion Jan 22, 2026
7d607b6
added a patch for medialive
kai-ion Jan 22, 2026
ede47af
added a patch for s3 list parts where
kai-ion Jan 22, 2026
23c1e92
added integration tests for s3,ec2,dynamodb
kai-ion Jan 22, 2026
afbb203
added a patch to fix std string usage
kai-ion Jan 22, 2026
0fd0691
literally copy bucket integration test
kai-ion Jan 22, 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
@@ -0,0 +1,31 @@
/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/

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

namespace Aws {
namespace DynamoDB {
namespace Pagination {

struct ScanPaginationTraits {
using RequestType = Model::ScanRequest;
using ResultType = Model::ScanResult;
using OutcomeType = Model::ScanOutcome;
using ClientType = DynamoDBClient;

static OutcomeType Invoke(ClientType& 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
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/ec2/EC2Client.h>
#include <aws/ec2/EC2_EXPORTS.h>
#include <aws/ec2/model/DescribeSpotPriceHistoryRequest.h>
#include <aws/ec2/model/DescribeSpotPriceHistoryResponse.h>

namespace Aws {
namespace EC2 {
namespace Pagination {

struct DescribeSpotPriceHistoryPaginationTraits {
using RequestType = Model::DescribeSpotPriceHistoryRequest;
using ResultType = Model::DescribeSpotPriceHistoryResponse;
using OutcomeType = Model::DescribeSpotPriceHistoryOutcome;
using ClientType = EC2Client;

static OutcomeType Invoke(ClientType& client, const RequestType& request) { return client.DescribeSpotPriceHistory(request); }

static bool HasMoreResults(const ResultType& result) { return !result.GetNextToken().empty(); }

static void SetNextRequest(const ResultType& result, RequestType& request) { request.SetNextToken(result.GetNextToken()); }
};

} // namespace Pagination
} // namespace EC2
} // namespace Aws
26 changes: 26 additions & 0 deletions generated/src/aws-cpp-sdk-s3/include/aws/s3/S3ClientPagination.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
/**
* 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/s3/S3Client.h>
#include <aws/s3/model/pagination/ListBucketsPaginationTraits.h>
#include <aws/s3/model/pagination/ListDirectoryBucketsPaginationTraits.h>
#include <aws/s3/model/pagination/ListObjectsV2PaginationTraits.h>
#include <aws/s3/model/pagination/ListPartsPaginationTraits.h>

namespace Aws {
namespace S3 {

using ListBucketsPaginator =
Aws::Utils::Pagination::PagePaginator<S3Client, Model::ListBucketsRequest, Pagination::ListBucketsPaginationTraits>;
using ListDirectoryBucketsPaginator =
Aws::Utils::Pagination::PagePaginator<S3Client, Model::ListDirectoryBucketsRequest, Pagination::ListDirectoryBucketsPaginationTraits>;
using ListObjectsV2Paginator =
Aws::Utils::Pagination::PagePaginator<S3Client, Model::ListObjectsV2Request, Pagination::ListObjectsV2PaginationTraits>;
using ListPartsPaginator = Aws::Utils::Pagination::PagePaginator<S3Client, Model::ListPartsRequest, Pagination::ListPartsPaginationTraits>;

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

#pragma once
#include <aws/s3/S3Client.h>
#include <aws/s3/S3_EXPORTS.h>
#include <aws/s3/model/ListBucketsRequest.h>
#include <aws/s3/model/ListBucketsResult.h>

namespace Aws {
namespace S3 {
namespace Pagination {

struct ListBucketsPaginationTraits {
using RequestType = Model::ListBucketsRequest;
using ResultType = Model::ListBucketsResult;
using OutcomeType = Model::ListBucketsOutcome;
using ClientType = S3Client;

static OutcomeType Invoke(ClientType& client, const RequestType& request) { return client.ListBuckets(request); }

static bool HasMoreResults(const ResultType& result) { return !result.GetContinuationToken().empty(); }

static void SetNextRequest(const ResultType& result, RequestType& request) {
request.SetContinuationToken(result.GetContinuationToken());
}
};

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

#pragma once
#include <aws/s3/S3Client.h>
#include <aws/s3/S3_EXPORTS.h>
#include <aws/s3/model/ListDirectoryBucketsRequest.h>
#include <aws/s3/model/ListDirectoryBucketsResult.h>

namespace Aws {
namespace S3 {
namespace Pagination {

struct ListDirectoryBucketsPaginationTraits {
using RequestType = Model::ListDirectoryBucketsRequest;
using ResultType = Model::ListDirectoryBucketsResult;
using OutcomeType = Model::ListDirectoryBucketsOutcome;
using ClientType = S3Client;

static OutcomeType Invoke(ClientType& client, const RequestType& request) { return client.ListDirectoryBuckets(request); }

static bool HasMoreResults(const ResultType& result) { return !result.GetContinuationToken().empty(); }

static void SetNextRequest(const ResultType& result, RequestType& request) {
request.SetContinuationToken(result.GetContinuationToken());
}
};

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

#pragma once
#include <aws/s3/S3Client.h>
#include <aws/s3/S3_EXPORTS.h>
#include <aws/s3/model/ListObjectsV2Request.h>
#include <aws/s3/model/ListObjectsV2Result.h>

namespace Aws {
namespace S3 {
namespace Pagination {

struct ListObjectsV2PaginationTraits {
using RequestType = Model::ListObjectsV2Request;
using ResultType = Model::ListObjectsV2Result;
using OutcomeType = Model::ListObjectsV2Outcome;
using ClientType = S3Client;

static OutcomeType Invoke(ClientType& client, const RequestType& request) { return client.ListObjectsV2(request); }

static bool HasMoreResults(const ResultType& result) { return !result.GetNextContinuationToken().empty(); }

static void SetNextRequest(const ResultType& result, RequestType& request) {
request.SetContinuationToken(result.GetNextContinuationToken());
}
};

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

#pragma once
#include <aws/s3/S3Client.h>
#include <aws/s3/S3_EXPORTS.h>
#include <aws/s3/model/ListPartsRequest.h>
#include <aws/s3/model/ListPartsResult.h>

namespace Aws {
namespace S3 {
namespace Pagination {

struct ListPartsPaginationTraits {
using RequestType = Model::ListPartsRequest;
using ResultType = Model::ListPartsResult;
using OutcomeType = Model::ListPartsOutcome;
using ClientType = S3Client;

static OutcomeType Invoke(ClientType& client, const RequestType& request) { return client.ListParts(request); }

static bool HasMoreResults(const ResultType& result) { return result.GetNextPartNumberMarker() != 0; }

static void SetNextRequest(const ResultType& result, RequestType& request) {
request.SetPartNumberMarker(result.GetNextPartNumberMarker());
}
};

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

// Header compilation test for DynamoDB pagination headers
// This test ensures all generated pagination headers compile successfully

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

#include <aws/testing/AwsCppSdkGTestSuite.h>

class DynamoDBPaginationCompilationTest : public Aws::Testing::AwsCppSdkGTestSuite
{
};

TEST_F(DynamoDBPaginationCompilationTest, DynamoDBPaginationHeadersCompile)
{
// Test passes if compilation succeeds
SUCCEED();
}
Loading
Loading